{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "df = pd.read_csv(\"data2.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>name</th>\n",
       "      <th>alpha2</th>\n",
       "      <th>alpha3</th>\n",
       "      <th>alpha4</th>\n",
       "      <th>alpha5</th>\n",
       "      <th>alpha6</th>\n",
       "      <th>alpha7</th>\n",
       "      <th>alpha8</th>\n",
       "      <th>alpha9</th>\n",
       "      <th>...</th>\n",
       "      <th>alpha183</th>\n",
       "      <th>alpha184</th>\n",
       "      <th>alpha185</th>\n",
       "      <th>alpha186</th>\n",
       "      <th>alpha187</th>\n",
       "      <th>alpha188</th>\n",
       "      <th>alpha189</th>\n",
       "      <th>alpha190</th>\n",
       "      <th>alpha191</th>\n",
       "      <th>target</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000001.SZ</td>\n",
       "      <td>-0.116667</td>\n",
       "      <td>-0.97</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.153093</td>\n",
       "      <td>46.0</td>\n",
       "      <td>9045.0</td>\n",
       "      <td>112.0</td>\n",
       "      <td>-1.827606e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>93.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.13</td>\n",
       "      <td>128.221601</td>\n",
       "      <td>2.558333e-01</td>\n",
       "      <td>-11.899066</td>\n",
       "      <td>2.640501e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.00</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-0.000000</td>\n",
       "      <td>36.0</td>\n",
       "      <td>1100.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>8.668031e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>202.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>9.34</td>\n",
       "      <td>-100.000000</td>\n",
       "      <td>3.552714e-15</td>\n",
       "      <td>-9.605623</td>\n",
       "      <td>-2.523952e-07</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000008.SZ</td>\n",
       "      <td>0.957348</td>\n",
       "      <td>-0.83</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-0.480384</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-1.398115e-08</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>4.10</td>\n",
       "      <td>103.242753</td>\n",
       "      <td>3.963889e-01</td>\n",
       "      <td>-9.232006</td>\n",
       "      <td>1.424994e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000009.SZ</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>-3.15</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-0.903696</td>\n",
       "      <td>46.0</td>\n",
       "      <td>16240.0</td>\n",
       "      <td>234.0</td>\n",
       "      <td>-9.880921e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>405.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>4.97</td>\n",
       "      <td>87.660346</td>\n",
       "      <td>5.758333e-01</td>\n",
       "      <td>-9.267051</td>\n",
       "      <td>5.236059e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000024.SZ</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-0.000000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2.055413e-08</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 182 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       date       name    alpha2  alpha3  alpha4    alpha5  alpha6   alpha7  \\\n",
       "0  20160104  000001.SZ -0.116667   -0.97     1.0  0.153093    46.0   9045.0   \n",
       "1  20160104  000002.SZ       NaN    0.00    -1.0 -0.000000    36.0   1100.0   \n",
       "2  20160104  000008.SZ  0.957348   -0.83    -1.0 -0.480384     NaN      NaN   \n",
       "3  20160104  000009.SZ  0.142857   -3.15     1.0 -0.903696    46.0  16240.0   \n",
       "4  20160104  000024.SZ       NaN     NaN     NaN -0.000000     NaN      NaN   \n",
       "\n",
       "   alpha8        alpha9   ...    alpha183  alpha184  alpha185  alpha186  \\\n",
       "0   112.0 -1.827606e-09   ...         NaN      93.0       NaN       NaN   \n",
       "1    18.0  8.668031e-09   ...         NaN     202.0       NaN       NaN   \n",
       "2     NaN -1.398115e-08   ...         NaN       NaN       NaN       NaN   \n",
       "3   234.0 -9.880921e-09   ...         NaN     405.0       NaN       NaN   \n",
       "4     NaN  2.055413e-08   ...         NaN       NaN       NaN       NaN   \n",
       "\n",
       "   alpha187    alpha188      alpha189   alpha190      alpha191  target  \n",
       "0      2.13  128.221601  2.558333e-01 -11.899066  2.640501e+01     0.0  \n",
       "1      9.34 -100.000000  3.552714e-15  -9.605623 -2.523952e-07     0.0  \n",
       "2      4.10  103.242753  3.963889e-01  -9.232006  1.424994e+01     0.0  \n",
       "3      4.97   87.660346  5.758333e-01  -9.267051  5.236059e+00     0.0  \n",
       "4       NaN         NaN           NaN        NaN           NaN     0.0  \n",
       "\n",
       "[5 rows x 182 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 333336 entries, 0 to 333335\n",
      "Columns: 182 entries, date to target\n",
      "dtypes: float64(180), int64(1), object(1)\n",
      "memory usage: 462.9+ MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "date             0\n",
       "name             0\n",
       "alpha2       28580\n",
       "alpha3       12044\n",
       "alpha4       18475\n",
       "alpha5       31259\n",
       "alpha6      114038\n",
       "alpha7      114037\n",
       "alpha8      114038\n",
       "alpha9       11125\n",
       "alpha10     114050\n",
       "alpha11      28168\n",
       "alpha12     114043\n",
       "alpha13      11835\n",
       "alpha14      12013\n",
       "alpha15      11870\n",
       "alpha16     126048\n",
       "alpha17     107722\n",
       "alpha18      12013\n",
       "alpha19      12013\n",
       "alpha20      12049\n",
       "alpha21      12183\n",
       "alpha22      10598\n",
       "alpha23      11673\n",
       "alpha24      10493\n",
       "alpha25     184772\n",
       "alpha27      12434\n",
       "alpha28      11357\n",
       "alpha29      12049\n",
       "alpha31      12218\n",
       "             ...  \n",
       "alpha163    114053\n",
       "alpha164    333336\n",
       "alpha165    333336\n",
       "alpha166     13218\n",
       "alpha167     12254\n",
       "alpha168     22372\n",
       "alpha169     11270\n",
       "alpha170    120179\n",
       "alpha171     37006\n",
       "alpha172     22979\n",
       "alpha173     10320\n",
       "alpha174    333336\n",
       "alpha175     12044\n",
       "alpha176    121743\n",
       "alpha177     12517\n",
       "alpha178     11870\n",
       "alpha179    333336\n",
       "alpha180    333336\n",
       "alpha181    333336\n",
       "alpha182    333336\n",
       "alpha183    333336\n",
       "alpha184    114646\n",
       "alpha185    333336\n",
       "alpha186    333336\n",
       "alpha187     12534\n",
       "alpha188     12645\n",
       "alpha189     12183\n",
       "alpha190     22710\n",
       "alpha191     22443\n",
       "target           0\n",
       "Length: 182, dtype: int64"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.isna().sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "df=df.fillna(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>name</th>\n",
       "      <th>alpha2</th>\n",
       "      <th>alpha3</th>\n",
       "      <th>alpha4</th>\n",
       "      <th>alpha5</th>\n",
       "      <th>alpha6</th>\n",
       "      <th>alpha7</th>\n",
       "      <th>alpha8</th>\n",
       "      <th>alpha9</th>\n",
       "      <th>...</th>\n",
       "      <th>alpha183</th>\n",
       "      <th>alpha184</th>\n",
       "      <th>alpha185</th>\n",
       "      <th>alpha186</th>\n",
       "      <th>alpha187</th>\n",
       "      <th>alpha188</th>\n",
       "      <th>alpha189</th>\n",
       "      <th>alpha190</th>\n",
       "      <th>alpha191</th>\n",
       "      <th>target</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000001.SZ</td>\n",
       "      <td>-0.116667</td>\n",
       "      <td>-9.700000e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.530931e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>9045.0</td>\n",
       "      <td>112.0</td>\n",
       "      <td>-1.827606e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>93.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.13</td>\n",
       "      <td>128.221601</td>\n",
       "      <td>2.558333e-01</td>\n",
       "      <td>-11.899066</td>\n",
       "      <td>2.640501e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000002.SZ</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-0.000000e+00</td>\n",
       "      <td>36.0</td>\n",
       "      <td>1100.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>8.668031e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>202.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>9.34</td>\n",
       "      <td>-100.000000</td>\n",
       "      <td>3.552714e-15</td>\n",
       "      <td>-9.605623</td>\n",
       "      <td>-2.523952e-07</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000008.SZ</td>\n",
       "      <td>0.957348</td>\n",
       "      <td>-8.300000e-01</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-4.803845e-01</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-1.398115e-08</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.10</td>\n",
       "      <td>103.242753</td>\n",
       "      <td>3.963889e-01</td>\n",
       "      <td>-9.232006</td>\n",
       "      <td>1.424994e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000009.SZ</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>-3.150000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-9.036961e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>16240.0</td>\n",
       "      <td>234.0</td>\n",
       "      <td>-9.880921e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>405.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.97</td>\n",
       "      <td>87.660346</td>\n",
       "      <td>5.758333e-01</td>\n",
       "      <td>-9.267051</td>\n",
       "      <td>5.236059e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000024.SZ</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-0.000000e+00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.055413e-08</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000027.SZ</td>\n",
       "      <td>0.170068</td>\n",
       "      <td>-1.490000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-8.003267e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>69136.0</td>\n",
       "      <td>150.0</td>\n",
       "      <td>-7.659751e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>369.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.08</td>\n",
       "      <td>155.212223</td>\n",
       "      <td>2.977778e-01</td>\n",
       "      <td>-9.751322</td>\n",
       "      <td>6.675573e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000039.SZ</td>\n",
       "      <td>0.045221</td>\n",
       "      <td>-3.970000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-7.905694e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>27810.0</td>\n",
       "      <td>264.0</td>\n",
       "      <td>-6.459548e-08</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>408.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.81</td>\n",
       "      <td>90.000810</td>\n",
       "      <td>8.094444e-01</td>\n",
       "      <td>-8.579370</td>\n",
       "      <td>2.469132e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000046.SZ</td>\n",
       "      <td>0.111137</td>\n",
       "      <td>-1.290000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-9.711232e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>7038.0</td>\n",
       "      <td>166.0</td>\n",
       "      <td>-2.928908e-08</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>201.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.64</td>\n",
       "      <td>71.829828</td>\n",
       "      <td>4.472222e-01</td>\n",
       "      <td>-8.721542</td>\n",
       "      <td>1.930378e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000060.SZ</td>\n",
       "      <td>0.228571</td>\n",
       "      <td>-2.400000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-6.666667e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>9324.0</td>\n",
       "      <td>174.0</td>\n",
       "      <td>-8.483780e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>369.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5.97</td>\n",
       "      <td>93.165425</td>\n",
       "      <td>6.152778e-01</td>\n",
       "      <td>-8.984750</td>\n",
       "      <td>1.961559e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000061.SZ</td>\n",
       "      <td>0.269841</td>\n",
       "      <td>-4.670000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3.750000e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>11438.0</td>\n",
       "      <td>260.0</td>\n",
       "      <td>-2.492997e-08</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>413.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>9.24</td>\n",
       "      <td>70.620436</td>\n",
       "      <td>1.026389e+00</td>\n",
       "      <td>-8.311806</td>\n",
       "      <td>2.082842e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000063.SZ</td>\n",
       "      <td>0.013031</td>\n",
       "      <td>-2.350000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-9.678053e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>126456.0</td>\n",
       "      <td>184.0</td>\n",
       "      <td>-1.208779e-08</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>216.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5.23</td>\n",
       "      <td>134.419956</td>\n",
       "      <td>4.644444e-01</td>\n",
       "      <td>-9.361549</td>\n",
       "      <td>1.382470e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000069.SZ</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>-1.570000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>46.0</td>\n",
       "      <td>68448.0</td>\n",
       "      <td>142.0</td>\n",
       "      <td>-3.282336e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>223.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.95</td>\n",
       "      <td>99.680350</td>\n",
       "      <td>3.488889e-01</td>\n",
       "      <td>-9.067292</td>\n",
       "      <td>1.725636e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000100.SZ</td>\n",
       "      <td>0.129199</td>\n",
       "      <td>-5.700000e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>46.0</td>\n",
       "      <td>1864.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>-1.589163e-10</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>128.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.66</td>\n",
       "      <td>106.364046</td>\n",
       "      <td>1.288889e-01</td>\n",
       "      <td>-8.928884</td>\n",
       "      <td>-1.035634e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000156.SZ</td>\n",
       "      <td>-0.004808</td>\n",
       "      <td>-6.170000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-4.900980e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>68816.0</td>\n",
       "      <td>268.0</td>\n",
       "      <td>-1.722796e-07</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>495.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>12.94</td>\n",
       "      <td>141.519548</td>\n",
       "      <td>1.315278e+00</td>\n",
       "      <td>-9.338116</td>\n",
       "      <td>2.527618e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000157.SZ</td>\n",
       "      <td>-0.047619</td>\n",
       "      <td>-6.000000e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-6.288281e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>18880.0</td>\n",
       "      <td>69.0</td>\n",
       "      <td>-4.614440e-10</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>57.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.67</td>\n",
       "      <td>131.437867</td>\n",
       "      <td>1.500000e-01</td>\n",
       "      <td>-11.135158</td>\n",
       "      <td>1.279595e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000166.SZ</td>\n",
       "      <td>0.125799</td>\n",
       "      <td>-1.420000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-8.401681e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>63750.0</td>\n",
       "      <td>156.0</td>\n",
       "      <td>-4.494364e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>247.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.89</td>\n",
       "      <td>122.001859</td>\n",
       "      <td>3.016667e-01</td>\n",
       "      <td>-8.626218</td>\n",
       "      <td>1.161197e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000333.SZ</td>\n",
       "      <td>0.425371</td>\n",
       "      <td>-2.300000e+00</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.000000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>12496.0</td>\n",
       "      <td>30.0</td>\n",
       "      <td>-8.409500e-08</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>332.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>10.46</td>\n",
       "      <td>95.988024</td>\n",
       "      <td>1.035000e+00</td>\n",
       "      <td>-8.798900</td>\n",
       "      <td>4.433935e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000338.SZ</td>\n",
       "      <td>-0.070122</td>\n",
       "      <td>-1.140000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-7.071068e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>60950.0</td>\n",
       "      <td>117.0</td>\n",
       "      <td>-4.339831e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>109.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.79</td>\n",
       "      <td>154.593279</td>\n",
       "      <td>2.055556e-01</td>\n",
       "      <td>-10.986103</td>\n",
       "      <td>3.308467e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000400.SZ</td>\n",
       "      <td>0.422969</td>\n",
       "      <td>-1.310000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-9.759001e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>42813.0</td>\n",
       "      <td>72.0</td>\n",
       "      <td>-2.589300e-08</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>348.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.98</td>\n",
       "      <td>125.768613</td>\n",
       "      <td>4.341667e-01</td>\n",
       "      <td>-9.372722</td>\n",
       "      <td>5.886652e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000402.SZ</td>\n",
       "      <td>0.015693</td>\n",
       "      <td>-2.510000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>46.0</td>\n",
       "      <td>13875.0</td>\n",
       "      <td>228.0</td>\n",
       "      <td>-4.087701e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>393.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.94</td>\n",
       "      <td>43.728880</td>\n",
       "      <td>8.272222e-01</td>\n",
       "      <td>-8.749756</td>\n",
       "      <td>1.864166e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000408.SZ</td>\n",
       "      <td>0.580645</td>\n",
       "      <td>-2.180000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-4.803845e-01</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-8.802846e-08</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5.65</td>\n",
       "      <td>69.671544</td>\n",
       "      <td>4.805556e-01</td>\n",
       "      <td>-10.341476</td>\n",
       "      <td>4.645282e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000413.SZ</td>\n",
       "      <td>-0.000000</td>\n",
       "      <td>-1.360000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-2.100420e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>52371.0</td>\n",
       "      <td>133.0</td>\n",
       "      <td>-3.811492e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>353.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.30</td>\n",
       "      <td>144.813611</td>\n",
       "      <td>2.763889e-01</td>\n",
       "      <td>-10.212139</td>\n",
       "      <td>2.426113e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000415.SZ</td>\n",
       "      <td>1.158763</td>\n",
       "      <td>-1.260000e+00</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-8.076923e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>72782.0</td>\n",
       "      <td>86.0</td>\n",
       "      <td>-3.741352e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>393.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.45</td>\n",
       "      <td>162.481130</td>\n",
       "      <td>1.986111e-01</td>\n",
       "      <td>-10.500818</td>\n",
       "      <td>1.011863e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000423.SZ</td>\n",
       "      <td>0.343994</td>\n",
       "      <td>-6.290000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-8.728716e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>71526.0</td>\n",
       "      <td>275.0</td>\n",
       "      <td>-2.172974e-07</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>480.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>19.90</td>\n",
       "      <td>97.282457</td>\n",
       "      <td>1.614722e+00</td>\n",
       "      <td>-9.817962</td>\n",
       "      <td>1.802464e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000425.SZ</td>\n",
       "      <td>0.701220</td>\n",
       "      <td>-4.700000e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.666667e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>80938.0</td>\n",
       "      <td>60.0</td>\n",
       "      <td>-2.848270e-10</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>125.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.40</td>\n",
       "      <td>188.440400</td>\n",
       "      <td>9.638889e-02</td>\n",
       "      <td>-10.889267</td>\n",
       "      <td>7.884189e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000503.SZ</td>\n",
       "      <td>0.263196</td>\n",
       "      <td>-5.850000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-5.345225e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>56175.0</td>\n",
       "      <td>212.0</td>\n",
       "      <td>-1.028363e-07</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>384.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.93</td>\n",
       "      <td>139.979646</td>\n",
       "      <td>8.000000e-01</td>\n",
       "      <td>-9.789805</td>\n",
       "      <td>1.554069e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000538.SZ</td>\n",
       "      <td>-0.107451</td>\n",
       "      <td>-8.450000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-9.128709e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>71027.0</td>\n",
       "      <td>287.0</td>\n",
       "      <td>-1.899783e-06</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>382.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>25.36</td>\n",
       "      <td>97.869826</td>\n",
       "      <td>2.249167e+00</td>\n",
       "      <td>-10.856881</td>\n",
       "      <td>3.761602e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000539.SZ</td>\n",
       "      <td>0.303922</td>\n",
       "      <td>-8.700000e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-2.182179e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>25480.0</td>\n",
       "      <td>95.0</td>\n",
       "      <td>-9.765854e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>103.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.90</td>\n",
       "      <td>161.664412</td>\n",
       "      <td>1.777778e-01</td>\n",
       "      <td>-10.777327</td>\n",
       "      <td>5.954545e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000540.SZ</td>\n",
       "      <td>-0.020833</td>\n",
       "      <td>-1.960000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.961161e-01</td>\n",
       "      <td>46.0</td>\n",
       "      <td>3350.0</td>\n",
       "      <td>149.0</td>\n",
       "      <td>-2.481670e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>139.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.65</td>\n",
       "      <td>89.441831</td>\n",
       "      <td>7.358333e-01</td>\n",
       "      <td>-9.245898</td>\n",
       "      <td>2.270498e+01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>20160104</td>\n",
       "      <td>000553.SZ</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.776357e-15</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333306</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601898.SH</td>\n",
       "      <td>-0.857143</td>\n",
       "      <td>-1.700000e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-0.000000e+00</td>\n",
       "      <td>107.0</td>\n",
       "      <td>37269.0</td>\n",
       "      <td>156.0</td>\n",
       "      <td>-2.184294e-10</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>209.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.28</td>\n",
       "      <td>-15.894026</td>\n",
       "      <td>6.666667e-02</td>\n",
       "      <td>-14.061211</td>\n",
       "      <td>-4.593800e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333307</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601899.SH</td>\n",
       "      <td>-1.750000</td>\n",
       "      <td>-4.440892e-16</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-8.540168e-01</td>\n",
       "      <td>107.0</td>\n",
       "      <td>1332.0</td>\n",
       "      <td>130.0</td>\n",
       "      <td>-9.350132e-12</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>324.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.33</td>\n",
       "      <td>-47.801872</td>\n",
       "      <td>2.027778e-02</td>\n",
       "      <td>-13.858244</td>\n",
       "      <td>8.051953e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333308</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601901.SH</td>\n",
       "      <td>-0.974545</td>\n",
       "      <td>9.000000e-02</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-3.841880e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>42771.0</td>\n",
       "      <td>57.0</td>\n",
       "      <td>3.613766e-10</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>79.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.70</td>\n",
       "      <td>58.788617</td>\n",
       "      <td>7.888889e-02</td>\n",
       "      <td>-11.817659</td>\n",
       "      <td>-7.378342e-01</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333309</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601919.SH</td>\n",
       "      <td>-0.750000</td>\n",
       "      <td>1.100000e-01</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-7.881104e-02</td>\n",
       "      <td>107.0</td>\n",
       "      <td>13904.0</td>\n",
       "      <td>94.0</td>\n",
       "      <td>5.011643e-11</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>298.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.60</td>\n",
       "      <td>-32.202968</td>\n",
       "      <td>2.277778e-02</td>\n",
       "      <td>-12.246197</td>\n",
       "      <td>-5.810104e-01</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333310</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601928.SH</td>\n",
       "      <td>-0.166275</td>\n",
       "      <td>3.600000e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-9.759001e-01</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.286627e-10</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.68</td>\n",
       "      <td>-31.586898</td>\n",
       "      <td>2.202778e-01</td>\n",
       "      <td>-9.879723</td>\n",
       "      <td>9.036093e-01</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333311</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601929.SH</td>\n",
       "      <td>-0.666667</td>\n",
       "      <td>-1.000000e-02</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-4.510033e-01</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-4.498561e-11</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.16</td>\n",
       "      <td>-51.417829</td>\n",
       "      <td>2.277778e-02</td>\n",
       "      <td>-12.565442</td>\n",
       "      <td>-1.481665e-02</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333312</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601933.SH</td>\n",
       "      <td>-0.511312</td>\n",
       "      <td>6.600000e-01</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-8.790491e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>9646.0</td>\n",
       "      <td>29.0</td>\n",
       "      <td>4.331414e-10</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>355.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.49</td>\n",
       "      <td>-23.859269</td>\n",
       "      <td>1.716667e-01</td>\n",
       "      <td>-11.450684</td>\n",
       "      <td>1.281060e+00</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333313</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601939.SH</td>\n",
       "      <td>-1.269841</td>\n",
       "      <td>-2.000000e-02</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-7.905694e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>54000.0</td>\n",
       "      <td>68.0</td>\n",
       "      <td>-9.026330e-12</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>281.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.49</td>\n",
       "      <td>-9.130556</td>\n",
       "      <td>1.100000e-01</td>\n",
       "      <td>-13.730526</td>\n",
       "      <td>7.643060e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333314</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601958.SH</td>\n",
       "      <td>-0.477273</td>\n",
       "      <td>-2.300000e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-5.884899e-01</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-6.753157e-10</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.53</td>\n",
       "      <td>-28.395310</td>\n",
       "      <td>4.638889e-02</td>\n",
       "      <td>-14.163201</td>\n",
       "      <td>1.511960e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333315</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601966.SH</td>\n",
       "      <td>-1.355897</td>\n",
       "      <td>-5.600000e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.720618e-01</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-3.049985e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.83</td>\n",
       "      <td>-21.651439</td>\n",
       "      <td>1.505556e-01</td>\n",
       "      <td>-13.162543</td>\n",
       "      <td>-8.992736e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333316</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601969.SH</td>\n",
       "      <td>-0.800000</td>\n",
       "      <td>-6.000000e-02</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-9.525793e-01</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-1.954694e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.25</td>\n",
       "      <td>-30.352624</td>\n",
       "      <td>7.638889e-02</td>\n",
       "      <td>-10.231510</td>\n",
       "      <td>8.161265e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333317</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601985.SH</td>\n",
       "      <td>-0.920635</td>\n",
       "      <td>1.000000e-02</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-8.728716e-01</td>\n",
       "      <td>107.0</td>\n",
       "      <td>42579.0</td>\n",
       "      <td>135.0</td>\n",
       "      <td>-2.409300e-11</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>452.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.42</td>\n",
       "      <td>-6.465276</td>\n",
       "      <td>1.333333e-02</td>\n",
       "      <td>-14.719953</td>\n",
       "      <td>6.081910e-02</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333318</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601988.SH</td>\n",
       "      <td>-0.000000</td>\n",
       "      <td>1.200000e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-2.500000e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1926.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>2.278494e-12</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>476.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.32</td>\n",
       "      <td>16.407734</td>\n",
       "      <td>2.000000e-02</td>\n",
       "      <td>-16.317592</td>\n",
       "      <td>9.303704e-01</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333319</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601989.SH</td>\n",
       "      <td>0.428571</td>\n",
       "      <td>1.000000e-01</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-3.626203e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>11385.0</td>\n",
       "      <td>67.0</td>\n",
       "      <td>1.546327e-11</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>418.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.45</td>\n",
       "      <td>-44.764228</td>\n",
       "      <td>5.000000e-02</td>\n",
       "      <td>-13.832384</td>\n",
       "      <td>-2.223263e-01</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333320</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601991.SH</td>\n",
       "      <td>-0.303030</td>\n",
       "      <td>8.000000e-02</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-2.635231e-01</td>\n",
       "      <td>107.0</td>\n",
       "      <td>37808.0</td>\n",
       "      <td>82.0</td>\n",
       "      <td>6.347656e-11</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>387.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.32</td>\n",
       "      <td>64.230618</td>\n",
       "      <td>2.638889e-02</td>\n",
       "      <td>-15.172706</td>\n",
       "      <td>-2.027157e-01</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333321</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601992.SH</td>\n",
       "      <td>-0.071429</td>\n",
       "      <td>-2.900000e-01</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.961161e-01</td>\n",
       "      <td>107.0</td>\n",
       "      <td>9700.0</td>\n",
       "      <td>139.0</td>\n",
       "      <td>-5.866498e-11</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>475.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.05</td>\n",
       "      <td>-32.587149</td>\n",
       "      <td>8.388889e-02</td>\n",
       "      <td>-11.083659</td>\n",
       "      <td>7.317055e-02</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333322</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601997.SH</td>\n",
       "      <td>-1.384615</td>\n",
       "      <td>-2.000000e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-0.000000e+00</td>\n",
       "      <td>107.0</td>\n",
       "      <td>31944.0</td>\n",
       "      <td>126.0</td>\n",
       "      <td>-2.285733e-10</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>349.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.75</td>\n",
       "      <td>-1.728785</td>\n",
       "      <td>8.083333e-02</td>\n",
       "      <td>-15.421289</td>\n",
       "      <td>5.683230e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333323</th>\n",
       "      <td>20181228</td>\n",
       "      <td>601998.SH</td>\n",
       "      <td>-1.305556</td>\n",
       "      <td>1.000000e-02</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-5.717719e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>28014.0</td>\n",
       "      <td>95.0</td>\n",
       "      <td>4.178643e-12</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>210.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.30</td>\n",
       "      <td>2.846467</td>\n",
       "      <td>4.750000e-02</td>\n",
       "      <td>-14.599998</td>\n",
       "      <td>3.184782e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333324</th>\n",
       "      <td>20181228</td>\n",
       "      <td>603000.SH</td>\n",
       "      <td>-0.588235</td>\n",
       "      <td>-6.000000e-02</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-8.546501e-16</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>-3.889776e-10</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.98</td>\n",
       "      <td>-24.321898</td>\n",
       "      <td>6.222222e-02</td>\n",
       "      <td>-10.044716</td>\n",
       "      <td>-4.016736e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333325</th>\n",
       "      <td>20181228</td>\n",
       "      <td>603156.SH</td>\n",
       "      <td>-0.250000</td>\n",
       "      <td>-1.860000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-6.276459e-01</td>\n",
       "      <td>107.0</td>\n",
       "      <td>107163.0</td>\n",
       "      <td>278.0</td>\n",
       "      <td>-4.612297e-07</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>360.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>9.05</td>\n",
       "      <td>-13.058918</td>\n",
       "      <td>5.608333e-01</td>\n",
       "      <td>-12.315344</td>\n",
       "      <td>2.087025e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333326</th>\n",
       "      <td>20181228</td>\n",
       "      <td>603160.SH</td>\n",
       "      <td>-0.566917</td>\n",
       "      <td>-4.470000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-6.875000e-01</td>\n",
       "      <td>107.0</td>\n",
       "      <td>67275.0</td>\n",
       "      <td>298.0</td>\n",
       "      <td>-8.598141e-07</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>20.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>31.60</td>\n",
       "      <td>77.393227</td>\n",
       "      <td>8.486111e-01</td>\n",
       "      <td>-9.142646</td>\n",
       "      <td>-2.342918e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333327</th>\n",
       "      <td>20181228</td>\n",
       "      <td>603259.SH</td>\n",
       "      <td>-1.012755</td>\n",
       "      <td>3.000000e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.156630e-01</td>\n",
       "      <td>107.0</td>\n",
       "      <td>53165.0</td>\n",
       "      <td>280.0</td>\n",
       "      <td>-2.515946e-07</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>351.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>11.68</td>\n",
       "      <td>-44.376751</td>\n",
       "      <td>9.658333e-01</td>\n",
       "      <td>-10.849971</td>\n",
       "      <td>-1.725854e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333328</th>\n",
       "      <td>20181228</td>\n",
       "      <td>603260.SH</td>\n",
       "      <td>-0.548450</td>\n",
       "      <td>-2.270000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-7.985957e-01</td>\n",
       "      <td>107.0</td>\n",
       "      <td>64261.0</td>\n",
       "      <td>277.0</td>\n",
       "      <td>-1.810163e-07</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>316.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>6.75</td>\n",
       "      <td>-25.761433</td>\n",
       "      <td>4.427778e-01</td>\n",
       "      <td>-14.160424</td>\n",
       "      <td>8.509764e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333329</th>\n",
       "      <td>20181228</td>\n",
       "      <td>603288.SH</td>\n",
       "      <td>-0.491582</td>\n",
       "      <td>4.340000e+00</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-7.669650e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>54054.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.854426e-07</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>124.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>19.60</td>\n",
       "      <td>-13.050540</td>\n",
       "      <td>1.681667e+00</td>\n",
       "      <td>-10.964737</td>\n",
       "      <td>-4.299187e+00</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333330</th>\n",
       "      <td>20181228</td>\n",
       "      <td>603799.SH</td>\n",
       "      <td>-1.164361</td>\n",
       "      <td>-4.040000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>107.0</td>\n",
       "      <td>21546.0</td>\n",
       "      <td>293.0</td>\n",
       "      <td>-2.812960e-08</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>254.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.90</td>\n",
       "      <td>-18.136480</td>\n",
       "      <td>1.483611e+00</td>\n",
       "      <td>-10.475174</td>\n",
       "      <td>3.283538e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333331</th>\n",
       "      <td>20181228</td>\n",
       "      <td>603833.SH</td>\n",
       "      <td>0.288645</td>\n",
       "      <td>-5.540000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-7.637626e-01</td>\n",
       "      <td>107.0</td>\n",
       "      <td>111936.0</td>\n",
       "      <td>297.0</td>\n",
       "      <td>-3.350522e-06</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>463.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>23.29</td>\n",
       "      <td>-28.699377</td>\n",
       "      <td>1.501111e+00</td>\n",
       "      <td>-10.357768</td>\n",
       "      <td>9.591412e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333332</th>\n",
       "      <td>20181228</td>\n",
       "      <td>603858.SH</td>\n",
       "      <td>-1.071429</td>\n",
       "      <td>-4.800000e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-3.340766e-02</td>\n",
       "      <td>107.0</td>\n",
       "      <td>49750.0</td>\n",
       "      <td>180.0</td>\n",
       "      <td>-7.673470e-10</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>328.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.18</td>\n",
       "      <td>-49.182513</td>\n",
       "      <td>1.633333e-01</td>\n",
       "      <td>-11.698793</td>\n",
       "      <td>-5.918995e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333333</th>\n",
       "      <td>20181228</td>\n",
       "      <td>603885.SH</td>\n",
       "      <td>-0.048276</td>\n",
       "      <td>1.650000e+00</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-3.888889e-01</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.940100e-09</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.79</td>\n",
       "      <td>-23.322306</td>\n",
       "      <td>2.080556e-01</td>\n",
       "      <td>-10.386483</td>\n",
       "      <td>7.594454e-01</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333334</th>\n",
       "      <td>20181228</td>\n",
       "      <td>603986.SH</td>\n",
       "      <td>-1.309565</td>\n",
       "      <td>-5.590000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-4.909903e-01</td>\n",
       "      <td>107.0</td>\n",
       "      <td>64064.0</td>\n",
       "      <td>299.0</td>\n",
       "      <td>-8.374830e-07</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>303.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>11.75</td>\n",
       "      <td>-10.648072</td>\n",
       "      <td>1.910556e+00</td>\n",
       "      <td>-11.304116</td>\n",
       "      <td>-6.195094e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>333335</th>\n",
       "      <td>20181228</td>\n",
       "      <td>603993.SH</td>\n",
       "      <td>-0.460317</td>\n",
       "      <td>-3.800000e-01</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.336306e-01</td>\n",
       "      <td>107.0</td>\n",
       "      <td>4719.0</td>\n",
       "      <td>189.0</td>\n",
       "      <td>-7.605634e-11</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>348.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.65</td>\n",
       "      <td>-34.809161</td>\n",
       "      <td>1.208333e-01</td>\n",
       "      <td>-12.493727</td>\n",
       "      <td>5.899532e-01</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>333336 rows × 182 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            date       name    alpha2        alpha3  alpha4        alpha5  \\\n",
       "0       20160104  000001.SZ -0.116667 -9.700000e-01     1.0  1.530931e-01   \n",
       "1       20160104  000002.SZ  0.000000  0.000000e+00    -1.0 -0.000000e+00   \n",
       "2       20160104  000008.SZ  0.957348 -8.300000e-01    -1.0 -4.803845e-01   \n",
       "3       20160104  000009.SZ  0.142857 -3.150000e+00     1.0 -9.036961e-01   \n",
       "4       20160104  000024.SZ  0.000000  0.000000e+00     0.0 -0.000000e+00   \n",
       "5       20160104  000027.SZ  0.170068 -1.490000e+00     1.0 -8.003267e-01   \n",
       "6       20160104  000039.SZ  0.045221 -3.970000e+00     1.0 -7.905694e-01   \n",
       "7       20160104  000046.SZ  0.111137 -1.290000e+00     1.0 -9.711232e-01   \n",
       "8       20160104  000060.SZ  0.228571 -2.400000e+00     1.0 -6.666667e-01   \n",
       "9       20160104  000061.SZ  0.269841 -4.670000e+00     1.0  3.750000e-01   \n",
       "10      20160104  000063.SZ  0.013031 -2.350000e+00     1.0 -9.678053e-01   \n",
       "11      20160104  000069.SZ  0.200000 -1.570000e+00     1.0 -1.000000e+00   \n",
       "12      20160104  000100.SZ  0.129199 -5.700000e-01     1.0 -1.000000e+00   \n",
       "13      20160104  000156.SZ -0.004808 -6.170000e+00     1.0 -4.900980e-01   \n",
       "14      20160104  000157.SZ -0.047619 -6.000000e-01     1.0 -6.288281e-01   \n",
       "15      20160104  000166.SZ  0.125799 -1.420000e+00     1.0 -8.401681e-01   \n",
       "16      20160104  000333.SZ  0.425371 -2.300000e+00    -1.0 -1.000000e+00   \n",
       "17      20160104  000338.SZ -0.070122 -1.140000e+00     1.0 -7.071068e-01   \n",
       "18      20160104  000400.SZ  0.422969 -1.310000e+00     1.0 -9.759001e-01   \n",
       "19      20160104  000402.SZ  0.015693 -2.510000e+00     1.0  0.000000e+00   \n",
       "20      20160104  000408.SZ  0.580645 -2.180000e+00     1.0 -4.803845e-01   \n",
       "21      20160104  000413.SZ -0.000000 -1.360000e+00     1.0 -2.100420e-01   \n",
       "22      20160104  000415.SZ  1.158763 -1.260000e+00    -1.0 -8.076923e-01   \n",
       "23      20160104  000423.SZ  0.343994 -6.290000e+00     1.0 -8.728716e-01   \n",
       "24      20160104  000425.SZ  0.701220 -4.700000e-01     1.0  1.666667e-01   \n",
       "25      20160104  000503.SZ  0.263196 -5.850000e+00     1.0 -5.345225e-01   \n",
       "26      20160104  000538.SZ -0.107451 -8.450000e+00     1.0 -9.128709e-01   \n",
       "27      20160104  000539.SZ  0.303922 -8.700000e-01     1.0 -2.182179e-01   \n",
       "28      20160104  000540.SZ -0.020833 -1.960000e+00     1.0  1.961161e-01   \n",
       "29      20160104  000553.SZ  0.000000  0.000000e+00     1.0  0.000000e+00   \n",
       "...          ...        ...       ...           ...     ...           ...   \n",
       "333306  20181228  601898.SH -0.857143 -1.700000e-01     1.0 -0.000000e+00   \n",
       "333307  20181228  601899.SH -1.750000 -4.440892e-16     1.0 -8.540168e-01   \n",
       "333308  20181228  601901.SH -0.974545  9.000000e-02     1.0 -3.841880e-01   \n",
       "333309  20181228  601919.SH -0.750000  1.100000e-01    -1.0 -7.881104e-02   \n",
       "333310  20181228  601928.SH -0.166275  3.600000e-01     1.0 -9.759001e-01   \n",
       "333311  20181228  601929.SH -0.666667 -1.000000e-02     1.0 -4.510033e-01   \n",
       "333312  20181228  601933.SH -0.511312  6.600000e-01    -1.0 -8.790491e-01   \n",
       "333313  20181228  601939.SH -1.269841 -2.000000e-02     1.0 -7.905694e-01   \n",
       "333314  20181228  601958.SH -0.477273 -2.300000e-01     1.0 -5.884899e-01   \n",
       "333315  20181228  601966.SH -1.355897 -5.600000e-01     1.0 -1.720618e-01   \n",
       "333316  20181228  601969.SH -0.800000 -6.000000e-02    -1.0 -9.525793e-01   \n",
       "333317  20181228  601985.SH -0.920635  1.000000e-02    -1.0 -8.728716e-01   \n",
       "333318  20181228  601988.SH -0.000000  1.200000e-01     1.0 -2.500000e-01   \n",
       "333319  20181228  601989.SH  0.428571  1.000000e-01    -1.0 -3.626203e-01   \n",
       "333320  20181228  601991.SH -0.303030  8.000000e-02     1.0 -2.635231e-01   \n",
       "333321  20181228  601992.SH -0.071429 -2.900000e-01    -1.0 -1.961161e-01   \n",
       "333322  20181228  601997.SH -1.384615 -2.000000e-01     1.0 -0.000000e+00   \n",
       "333323  20181228  601998.SH -1.305556  1.000000e-02     1.0 -5.717719e-01   \n",
       "333324  20181228  603000.SH -0.588235 -6.000000e-02    -1.0 -8.546501e-16   \n",
       "333325  20181228  603156.SH -0.250000 -1.860000e+00     1.0 -6.276459e-01   \n",
       "333326  20181228  603160.SH -0.566917 -4.470000e+00     1.0 -6.875000e-01   \n",
       "333327  20181228  603259.SH -1.012755  3.000000e-01     1.0 -1.156630e-01   \n",
       "333328  20181228  603260.SH -0.548450 -2.270000e+00     1.0 -7.985957e-01   \n",
       "333329  20181228  603288.SH -0.491582  4.340000e+00    -1.0 -7.669650e-01   \n",
       "333330  20181228  603799.SH -1.164361 -4.040000e+00     1.0  0.000000e+00   \n",
       "333331  20181228  603833.SH  0.288645 -5.540000e+00     1.0 -7.637626e-01   \n",
       "333332  20181228  603858.SH -1.071429 -4.800000e-01     1.0 -3.340766e-02   \n",
       "333333  20181228  603885.SH -0.048276  1.650000e+00    -1.0 -3.888889e-01   \n",
       "333334  20181228  603986.SH -1.309565 -5.590000e+00     1.0 -4.909903e-01   \n",
       "333335  20181228  603993.SH -0.460317 -3.800000e-01     1.0 -1.336306e-01   \n",
       "\n",
       "        alpha6    alpha7  alpha8        alpha9   ...    alpha183  alpha184  \\\n",
       "0         46.0    9045.0   112.0 -1.827606e-09   ...         0.0      93.0   \n",
       "1         36.0    1100.0    18.0  8.668031e-09   ...         0.0     202.0   \n",
       "2          0.0       0.0     0.0 -1.398115e-08   ...         0.0       0.0   \n",
       "3         46.0   16240.0   234.0 -9.880921e-09   ...         0.0     405.0   \n",
       "4          0.0       0.0     0.0  2.055413e-08   ...         0.0       0.0   \n",
       "5         46.0   69136.0   150.0 -7.659751e-09   ...         0.0     369.0   \n",
       "6         46.0   27810.0   264.0 -6.459548e-08   ...         0.0     408.0   \n",
       "7         46.0    7038.0   166.0 -2.928908e-08   ...         0.0     201.0   \n",
       "8         46.0    9324.0   174.0 -8.483780e-09   ...         0.0     369.0   \n",
       "9         46.0   11438.0   260.0 -2.492997e-08   ...         0.0     413.0   \n",
       "10        46.0  126456.0   184.0 -1.208779e-08   ...         0.0     216.0   \n",
       "11        46.0   68448.0   142.0 -3.282336e-09   ...         0.0     223.0   \n",
       "12        46.0    1864.0    66.0 -1.589163e-10   ...         0.0     128.0   \n",
       "13        46.0   68816.0   268.0 -1.722796e-07   ...         0.0     495.0   \n",
       "14        46.0   18880.0    69.0 -4.614440e-10   ...         0.0      57.0   \n",
       "15        46.0   63750.0   156.0 -4.494364e-09   ...         0.0     247.0   \n",
       "16         1.0   12496.0    30.0 -8.409500e-08   ...         0.0     332.0   \n",
       "17        46.0   60950.0   117.0 -4.339831e-09   ...         0.0     109.0   \n",
       "18         1.0   42813.0    72.0 -2.589300e-08   ...         0.0     348.0   \n",
       "19        46.0   13875.0   228.0 -4.087701e-09   ...         0.0     393.0   \n",
       "20         0.0       0.0     0.0 -8.802846e-08   ...         0.0       0.0   \n",
       "21        46.0   52371.0   133.0 -3.811492e-09   ...         0.0     353.0   \n",
       "22        46.0   72782.0    86.0 -3.741352e-09   ...         0.0     393.0   \n",
       "23        46.0   71526.0   275.0 -2.172974e-07   ...         0.0     480.0   \n",
       "24        46.0   80938.0    60.0 -2.848270e-10   ...         0.0     125.0   \n",
       "25         1.0   56175.0   212.0 -1.028363e-07   ...         0.0     384.0   \n",
       "26        46.0   71027.0   287.0 -1.899783e-06   ...         0.0     382.0   \n",
       "27        46.0   25480.0    95.0 -9.765854e-09   ...         0.0     103.0   \n",
       "28        46.0    3350.0   149.0 -2.481670e-09   ...         0.0     139.0   \n",
       "29         0.0       0.0     0.0  0.000000e+00   ...         0.0       0.0   \n",
       "...        ...       ...     ...           ...   ...         ...       ...   \n",
       "333306   107.0   37269.0   156.0 -2.184294e-10   ...         0.0     209.0   \n",
       "333307   107.0    1332.0   130.0 -9.350132e-12   ...         0.0     324.0   \n",
       "333308     1.0   42771.0    57.0  3.613766e-10   ...         0.0      79.0   \n",
       "333309   107.0   13904.0    94.0  5.011643e-11   ...         0.0     298.0   \n",
       "333310     0.0       0.0     0.0  7.286627e-10   ...         0.0       0.0   \n",
       "333311     0.0       0.0     0.0 -4.498561e-11   ...         0.0       0.0   \n",
       "333312     1.0    9646.0    29.0  4.331414e-10   ...         0.0     355.0   \n",
       "333313     1.0   54000.0    68.0 -9.026330e-12   ...         0.0     281.0   \n",
       "333314     0.0       0.0     0.0 -6.753157e-10   ...         0.0       0.0   \n",
       "333315     0.0       0.0     0.0 -3.049985e-09   ...         0.0       0.0   \n",
       "333316     0.0       0.0     0.0 -1.954694e-09   ...         0.0       0.0   \n",
       "333317   107.0   42579.0   135.0 -2.409300e-11   ...         0.0     452.0   \n",
       "333318     1.0    1926.0    70.0  2.278494e-12   ...         0.0     476.0   \n",
       "333319     1.0   11385.0    67.0  1.546327e-11   ...         0.0     418.0   \n",
       "333320   107.0   37808.0    82.0  6.347656e-11   ...         0.0     387.0   \n",
       "333321   107.0    9700.0   139.0 -5.866498e-11   ...         0.0     475.0   \n",
       "333322   107.0   31944.0   126.0 -2.285733e-10   ...         0.0     349.0   \n",
       "333323     1.0   28014.0    95.0  4.178643e-12   ...         0.0     210.0   \n",
       "333324     0.0       0.0     0.0 -3.889776e-10   ...         0.0       0.0   \n",
       "333325   107.0  107163.0   278.0 -4.612297e-07   ...         0.0     360.0   \n",
       "333326   107.0   67275.0   298.0 -8.598141e-07   ...         0.0      20.0   \n",
       "333327   107.0   53165.0   280.0 -2.515946e-07   ...         0.0     351.0   \n",
       "333328   107.0   64261.0   277.0 -1.810163e-07   ...         0.0     316.0   \n",
       "333329     1.0   54054.0     3.0  2.854426e-07   ...         0.0     124.0   \n",
       "333330   107.0   21546.0   293.0 -2.812960e-08   ...         0.0     254.0   \n",
       "333331   107.0  111936.0   297.0 -3.350522e-06   ...         0.0     463.0   \n",
       "333332   107.0   49750.0   180.0 -7.673470e-10   ...         0.0     328.0   \n",
       "333333     0.0       0.0     0.0  1.940100e-09   ...         0.0       0.0   \n",
       "333334   107.0   64064.0   299.0 -8.374830e-07   ...         0.0     303.0   \n",
       "333335   107.0    4719.0   189.0 -7.605634e-11   ...         0.0     348.0   \n",
       "\n",
       "        alpha185  alpha186  alpha187    alpha188      alpha189   alpha190  \\\n",
       "0            0.0       0.0      2.13  128.221601  2.558333e-01 -11.899066   \n",
       "1            0.0       0.0      9.34 -100.000000  3.552714e-15  -9.605623   \n",
       "2            0.0       0.0      4.10  103.242753  3.963889e-01  -9.232006   \n",
       "3            0.0       0.0      4.97   87.660346  5.758333e-01  -9.267051   \n",
       "4            0.0       0.0      0.00    0.000000  0.000000e+00   0.000000   \n",
       "5            0.0       0.0      1.08  155.212223  2.977778e-01  -9.751322   \n",
       "6            0.0       0.0      7.81   90.000810  8.094444e-01  -8.579370   \n",
       "7            0.0       0.0      4.64   71.829828  4.472222e-01  -8.721542   \n",
       "8            0.0       0.0      5.97   93.165425  6.152778e-01  -8.984750   \n",
       "9            0.0       0.0      9.24   70.620436  1.026389e+00  -8.311806   \n",
       "10           0.0       0.0      5.23  134.419956  4.644444e-01  -9.361549   \n",
       "11           0.0       0.0      1.95   99.680350  3.488889e-01  -9.067292   \n",
       "12           0.0       0.0      1.66  106.364046  1.288889e-01  -8.928884   \n",
       "13           0.0       0.0     12.94  141.519548  1.315278e+00  -9.338116   \n",
       "14           0.0       0.0      0.67  131.437867  1.500000e-01 -11.135158   \n",
       "15           0.0       0.0      2.89  122.001859  3.016667e-01  -8.626218   \n",
       "16           0.0       0.0     10.46   95.988024  1.035000e+00  -8.798900   \n",
       "17           0.0       0.0      1.79  154.593279  2.055556e-01 -10.986103   \n",
       "18           0.0       0.0      4.98  125.768613  4.341667e-01  -9.372722   \n",
       "19           0.0       0.0      4.94   43.728880  8.272222e-01  -8.749756   \n",
       "20           0.0       0.0      5.65   69.671544  4.805556e-01 -10.341476   \n",
       "21           0.0       0.0      1.30  144.813611  2.763889e-01 -10.212139   \n",
       "22           0.0       0.0      1.45  162.481130  1.986111e-01 -10.500818   \n",
       "23           0.0       0.0     19.90   97.282457  1.614722e+00  -9.817962   \n",
       "24           0.0       0.0      0.40  188.440400  9.638889e-02 -10.889267   \n",
       "25           0.0       0.0      7.93  139.979646  8.000000e-01  -9.789805   \n",
       "26           0.0       0.0     25.36   97.869826  2.249167e+00 -10.856881   \n",
       "27           0.0       0.0      0.90  161.664412  1.777778e-01 -10.777327   \n",
       "28           0.0       0.0      2.65   89.441831  7.358333e-01  -9.245898   \n",
       "29           0.0       0.0      0.00    0.000000  1.776357e-15   0.000000   \n",
       "...          ...       ...       ...         ...           ...        ...   \n",
       "333306       0.0       0.0      0.28  -15.894026  6.666667e-02 -14.061211   \n",
       "333307       0.0       0.0      0.33  -47.801872  2.027778e-02 -13.858244   \n",
       "333308       0.0       0.0      0.70   58.788617  7.888889e-02 -11.817659   \n",
       "333309       0.0       0.0      0.60  -32.202968  2.277778e-02 -12.246197   \n",
       "333310       0.0       0.0      2.68  -31.586898  2.202778e-01  -9.879723   \n",
       "333311       0.0       0.0      0.16  -51.417829  2.277778e-02 -12.565442   \n",
       "333312       0.0       0.0      2.49  -23.859269  1.716667e-01 -11.450684   \n",
       "333313       0.0       0.0      0.49   -9.130556  1.100000e-01 -13.730526   \n",
       "333314       0.0       0.0      0.53  -28.395310  4.638889e-02 -14.163201   \n",
       "333315       0.0       0.0      1.83  -21.651439  1.505556e-01 -13.162543   \n",
       "333316       0.0       0.0      1.25  -30.352624  7.638889e-02 -10.231510   \n",
       "333317       0.0       0.0      0.42   -6.465276  1.333333e-02 -14.719953   \n",
       "333318       0.0       0.0      0.32   16.407734  2.000000e-02 -16.317592   \n",
       "333319       0.0       0.0      0.45  -44.764228  5.000000e-02 -13.832384   \n",
       "333320       0.0       0.0      0.32   64.230618  2.638889e-02 -15.172706   \n",
       "333321       0.0       0.0      1.05  -32.587149  8.388889e-02 -11.083659   \n",
       "333322       0.0       0.0      0.75   -1.728785  8.083333e-02 -15.421289   \n",
       "333323       0.0       0.0      0.30    2.846467  4.750000e-02 -14.599998   \n",
       "333324       0.0       0.0      1.98  -24.321898  6.222222e-02 -10.044716   \n",
       "333325       0.0       0.0      9.05  -13.058918  5.608333e-01 -12.315344   \n",
       "333326       0.0       0.0     31.60   77.393227  8.486111e-01  -9.142646   \n",
       "333327       0.0       0.0     11.68  -44.376751  9.658333e-01 -10.849971   \n",
       "333328       0.0       0.0      6.75  -25.761433  4.427778e-01 -14.160424   \n",
       "333329       0.0       0.0     19.60  -13.050540  1.681667e+00 -10.964737   \n",
       "333330       0.0       0.0      7.90  -18.136480  1.483611e+00 -10.475174   \n",
       "333331       0.0       0.0     23.29  -28.699377  1.501111e+00 -10.357768   \n",
       "333332       0.0       0.0      4.18  -49.182513  1.633333e-01 -11.698793   \n",
       "333333       0.0       0.0      2.79  -23.322306  2.080556e-01 -10.386483   \n",
       "333334       0.0       0.0     11.75  -10.648072  1.910556e+00 -11.304116   \n",
       "333335       0.0       0.0      0.65  -34.809161  1.208333e-01 -12.493727   \n",
       "\n",
       "            alpha191  target  \n",
       "0       2.640501e+01     0.0  \n",
       "1      -2.523952e-07     0.0  \n",
       "2       1.424994e+01     0.0  \n",
       "3       5.236059e+00     0.0  \n",
       "4       0.000000e+00     0.0  \n",
       "5       6.675573e+00     0.0  \n",
       "6       2.469132e+01     0.0  \n",
       "7       1.930378e+01     0.0  \n",
       "8       1.961559e+01     0.0  \n",
       "9       2.082842e+01     0.0  \n",
       "10      1.382470e+01     0.0  \n",
       "11      1.725636e+01     0.0  \n",
       "12     -1.035634e-01     0.0  \n",
       "13      2.527618e+00     0.0  \n",
       "14      1.279595e+01     0.0  \n",
       "15      1.161197e+00     0.0  \n",
       "16      4.433935e+00     0.0  \n",
       "17      3.308467e+00     0.0  \n",
       "18      5.886652e+00     0.0  \n",
       "19      1.864166e+01     0.0  \n",
       "20      4.645282e+00     0.0  \n",
       "21      2.426113e+00     0.0  \n",
       "22      1.011863e+01     0.0  \n",
       "23      1.802464e+01     0.0  \n",
       "24      7.884189e+00     0.0  \n",
       "25      1.554069e+01     0.0  \n",
       "26      3.761602e+01     0.0  \n",
       "27      5.954545e+00     0.0  \n",
       "28      2.270498e+01     0.0  \n",
       "29      0.000000e+00     0.0  \n",
       "...              ...     ...  \n",
       "333306 -4.593800e-01     0.0  \n",
       "333307  8.051953e-01     0.0  \n",
       "333308 -7.378342e-01     1.0  \n",
       "333309 -5.810104e-01     1.0  \n",
       "333310  9.036093e-01     1.0  \n",
       "333311 -1.481665e-02     0.0  \n",
       "333312  1.281060e+00     1.0  \n",
       "333313  7.643060e-01     0.0  \n",
       "333314  1.511960e-01     0.0  \n",
       "333315 -8.992736e-01     0.0  \n",
       "333316  8.161265e-01     0.0  \n",
       "333317  6.081910e-02     0.0  \n",
       "333318  9.303704e-01     1.0  \n",
       "333319 -2.223263e-01     1.0  \n",
       "333320 -2.027157e-01     1.0  \n",
       "333321  7.317055e-02     0.0  \n",
       "333322  5.683230e-01     0.0  \n",
       "333323  3.184782e-01     0.0  \n",
       "333324 -4.016736e-01     0.0  \n",
       "333325  2.087025e-01     0.0  \n",
       "333326 -2.342918e+00     0.0  \n",
       "333327 -1.725854e-01     0.0  \n",
       "333328  8.509764e-01     0.0  \n",
       "333329 -4.299187e+00     0.0  \n",
       "333330  3.283538e-01     0.0  \n",
       "333331  9.591412e-01     0.0  \n",
       "333332 -5.918995e-01     0.0  \n",
       "333333  7.594454e-01     1.0  \n",
       "333334 -6.195094e-01     0.0  \n",
       "333335  5.899532e-01     0.0  \n",
       "\n",
       "[333336 rows x 182 columns]"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = df.iloc[:, df.columns != 'target']\n",
    "y = df.iloc[:, df.columns == 'target']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([165072, 165073, 165074, 165075, 165076, 165077, 165078, 165079,\n",
       "        165080, 165081, 165082, 165083, 165084, 165085, 165086, 165087,\n",
       "        165088, 165089, 165090, 165091, 165092, 165093, 165094, 165095,\n",
       "        165096, 165097, 165098, 165099, 165100, 165101, 165102, 165103,\n",
       "        165104, 165105, 165106, 165107, 165108, 165109, 165110, 165111,\n",
       "        165112, 165113, 165114, 165115, 165116, 165117, 165118, 165119,\n",
       "        165120, 165121, 165122, 165123, 165124, 165125, 165126, 165127,\n",
       "        165128, 165129, 165130, 165131, 165132, 165133, 165134, 165135,\n",
       "        165136, 165137, 165138, 165139, 165140, 165141, 165142, 165143,\n",
       "        165144, 165145, 165146, 165147, 165148, 165149, 165150, 165151,\n",
       "        165152, 165153, 165154, 165155, 165156, 165157, 165158, 165159,\n",
       "        165160, 165161, 165162, 165163, 165164, 165165, 165166, 165167,\n",
       "        165168, 165169, 165170, 165171, 165172, 165173, 165174, 165175,\n",
       "        165176, 165177, 165178, 165179, 165180, 165181, 165182, 165183,\n",
       "        165184, 165185, 165186, 165187, 165188, 165189, 165190, 165191,\n",
       "        165192, 165193, 165194, 165195, 165196, 165197, 165198, 165199,\n",
       "        165200, 165201, 165202, 165203, 165204, 165205, 165206, 165207,\n",
       "        165208, 165209, 165210, 165211, 165212, 165213, 165214, 165215,\n",
       "        165216, 165217, 165218, 165219, 165220, 165221, 165222, 165223,\n",
       "        165224, 165225, 165226, 165227, 165228, 165229, 165230, 165231,\n",
       "        165232, 165233, 165234, 165235, 165236, 165237, 165238, 165239,\n",
       "        165240, 165241, 165242, 165243, 165244, 165245, 165246, 165247,\n",
       "        165248, 165249, 165250, 165251, 165252, 165253, 165254, 165255,\n",
       "        165256, 165257, 165258, 165259, 165260, 165261, 165262, 165263,\n",
       "        165264, 165265, 165266, 165267, 165268, 165269, 165270, 165271,\n",
       "        165272, 165273, 165274, 165275, 165276, 165277, 165278, 165279,\n",
       "        165280, 165281, 165282, 165283, 165284, 165285, 165286, 165287,\n",
       "        165288, 165289, 165290, 165291, 165292, 165293, 165294, 165295,\n",
       "        165296, 165297, 165298, 165299, 165300, 165301, 165302, 165303,\n",
       "        165304, 165305, 165306, 165307, 165308, 165309, 165310, 165311,\n",
       "        165312, 165313, 165314, 165315, 165316, 165317, 165318, 165319,\n",
       "        165320, 165321, 165322, 165323, 165324, 165325, 165326, 165327,\n",
       "        165328, 165329, 165330, 165331, 165332, 165333, 165334, 165335,\n",
       "        165336, 165337, 165338, 165339, 165340, 165341, 165342, 165343,\n",
       "        165344, 165345, 165346, 165347, 165348, 165349, 165350, 165351,\n",
       "        165352, 165353, 165354, 165355, 165356, 165357, 165358, 165359,\n",
       "        165360, 165361, 165362, 165363, 165364, 165365, 165366, 165367,\n",
       "        165368, 165369, 165370, 165371, 165372, 165373, 165374, 165375,\n",
       "        165376, 165377, 165378, 165379, 165380, 165381, 165382, 165383,\n",
       "        165384, 165385, 165386, 165387, 165388, 165389, 165390, 165391,\n",
       "        165392, 165393, 165394, 165395, 165396, 165397, 165398, 165399,\n",
       "        165400, 165401, 165402, 165403, 165404, 165405, 165406, 165407,\n",
       "        165408, 165409, 165410, 165411, 165412, 165413, 165414, 165415,\n",
       "        165416, 165417, 165418, 165419, 165420, 165421, 165422, 165423,\n",
       "        165424, 165425, 165426, 165427, 165428, 165429, 165430, 165431,\n",
       "        165432, 165433, 165434, 165435, 165436, 165437, 165438, 165439,\n",
       "        165440, 165441, 165442, 165443, 165444, 165445, 165446, 165447,\n",
       "        165448, 165449, 165450, 165451, 165452, 165453, 165454, 165455,\n",
       "        165456, 165457, 165458, 165459, 165460, 165461, 165462, 165463,\n",
       "        165464, 165465, 165466, 165467, 165468, 165469, 165470, 165471,\n",
       "        165472, 165473, 165474, 165475, 165476, 165477, 165478, 165479,\n",
       "        165480, 165481, 165482, 165483, 165484, 165485, 165486, 165487,\n",
       "        165488, 165489, 165490, 165491, 165492, 165493, 165494, 165495,\n",
       "        165496, 165497, 165498, 165499, 165500, 165501, 165502, 165503,\n",
       "        165504, 165505, 165506, 165507, 165508, 165509, 165510, 165511,\n",
       "        165512, 165513, 165514, 165515, 165516, 165517, 165518, 165519,\n",
       "        165520, 165521, 165522, 165523, 165524, 165525, 165526, 165527],\n",
       "       dtype=int64),)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "np.where(X['date']==20170630)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "date_time=X[[\"date\",\"name\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "X=X.drop([\"date\",\"name\"],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from sklearn.decomposition import PCA \n",
    "from sklearn import preprocessing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['alpha2',\n",
       " 'alpha3',\n",
       " 'alpha4',\n",
       " 'alpha5',\n",
       " 'alpha6',\n",
       " 'alpha7',\n",
       " 'alpha8',\n",
       " 'alpha9',\n",
       " 'alpha10',\n",
       " 'alpha11',\n",
       " 'alpha12',\n",
       " 'alpha13',\n",
       " 'alpha14',\n",
       " 'alpha15',\n",
       " 'alpha16',\n",
       " 'alpha17',\n",
       " 'alpha18',\n",
       " 'alpha19',\n",
       " 'alpha20',\n",
       " 'alpha21',\n",
       " 'alpha22',\n",
       " 'alpha23',\n",
       " 'alpha24',\n",
       " 'alpha25',\n",
       " 'alpha27',\n",
       " 'alpha28',\n",
       " 'alpha29',\n",
       " 'alpha31',\n",
       " 'alpha32',\n",
       " 'alpha33',\n",
       " 'alpha34',\n",
       " 'alpha35',\n",
       " 'alpha36',\n",
       " 'alpha37',\n",
       " 'alpha38',\n",
       " 'alpha39',\n",
       " 'alpha40',\n",
       " 'alpha41',\n",
       " 'alpha42',\n",
       " 'alpha43',\n",
       " 'alpha44',\n",
       " 'alpha45',\n",
       " 'alpha46',\n",
       " 'alpha47',\n",
       " 'alpha48',\n",
       " 'alpha49',\n",
       " 'alpha50',\n",
       " 'alpha51',\n",
       " 'alpha52',\n",
       " 'alpha53',\n",
       " 'alpha54',\n",
       " 'alpha55',\n",
       " 'alpha56',\n",
       " 'alpha58',\n",
       " 'alpha59',\n",
       " 'alpha60',\n",
       " 'alpha61',\n",
       " 'alpha63',\n",
       " 'alpha64',\n",
       " 'alpha65',\n",
       " 'alpha66',\n",
       " 'alpha67',\n",
       " 'alpha68',\n",
       " 'alpha69',\n",
       " 'alpha71',\n",
       " 'alpha72',\n",
       " 'alpha73',\n",
       " 'alpha74',\n",
       " 'alpha75',\n",
       " 'alpha76',\n",
       " 'alpha77',\n",
       " 'alpha78',\n",
       " 'alpha79',\n",
       " 'alpha80',\n",
       " 'alpha81',\n",
       " 'alpha82',\n",
       " 'alpha83',\n",
       " 'alpha84',\n",
       " 'alpha85',\n",
       " 'alpha86',\n",
       " 'alpha87',\n",
       " 'alpha88',\n",
       " 'alpha89',\n",
       " 'alpha90',\n",
       " 'alpha92',\n",
       " 'alpha93',\n",
       " 'alpha94',\n",
       " 'alpha96',\n",
       " 'alpha97',\n",
       " 'alpha98',\n",
       " 'alpha99',\n",
       " 'alpha100',\n",
       " 'alpha101',\n",
       " 'alpha102',\n",
       " 'alpha103',\n",
       " 'alpha104',\n",
       " 'alpha105',\n",
       " 'alpha106',\n",
       " 'alpha107',\n",
       " 'alpha108',\n",
       " 'alpha109',\n",
       " 'alpha110',\n",
       " 'alpha111',\n",
       " 'alpha113',\n",
       " 'alpha114',\n",
       " 'alpha115',\n",
       " 'alpha116',\n",
       " 'alpha117',\n",
       " 'alpha118',\n",
       " 'alpha119',\n",
       " 'alpha120',\n",
       " 'alpha121',\n",
       " 'alpha122',\n",
       " 'alpha123',\n",
       " 'alpha124',\n",
       " 'alpha125',\n",
       " 'alpha126',\n",
       " 'alpha128',\n",
       " 'alpha130',\n",
       " 'alpha131',\n",
       " 'alpha132',\n",
       " 'alpha133',\n",
       " 'alpha134',\n",
       " 'alpha135',\n",
       " 'alpha136',\n",
       " 'alpha137',\n",
       " 'alpha138',\n",
       " 'alpha139',\n",
       " 'alpha140',\n",
       " 'alpha141',\n",
       " 'alpha142',\n",
       " 'alpha143',\n",
       " 'alpha144',\n",
       " 'alpha145',\n",
       " 'alpha146',\n",
       " 'alpha147',\n",
       " 'alpha148',\n",
       " 'alpha149',\n",
       " 'alpha150',\n",
       " 'alpha151',\n",
       " 'alpha152',\n",
       " 'alpha153',\n",
       " 'alpha154',\n",
       " 'alpha155',\n",
       " 'alpha157',\n",
       " 'alpha158',\n",
       " 'alpha159',\n",
       " 'alpha160',\n",
       " 'alpha161',\n",
       " 'alpha162',\n",
       " 'alpha163',\n",
       " 'alpha164',\n",
       " 'alpha165',\n",
       " 'alpha166',\n",
       " 'alpha167',\n",
       " 'alpha168',\n",
       " 'alpha169',\n",
       " 'alpha170',\n",
       " 'alpha171',\n",
       " 'alpha172',\n",
       " 'alpha173',\n",
       " 'alpha174',\n",
       " 'alpha175',\n",
       " 'alpha176',\n",
       " 'alpha177',\n",
       " 'alpha178',\n",
       " 'alpha179',\n",
       " 'alpha180',\n",
       " 'alpha181',\n",
       " 'alpha182',\n",
       " 'alpha183',\n",
       " 'alpha184',\n",
       " 'alpha185',\n",
       " 'alpha186',\n",
       " 'alpha187',\n",
       " 'alpha188',\n",
       " 'alpha189',\n",
       " 'alpha190',\n",
       " 'alpha191']"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "alpha = [i for i in list(X)]\n",
    "alpha"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Jimei\\Anaconda3\\lib\\site-packages\\numpy\\core\\_methods.py:32: RuntimeWarning: overflow encountered in reduce\n",
      "  return umr_sum(a, axis, dtype, out, keepdims)\n",
      "C:\\Users\\Jimei\\Anaconda3\\lib\\site-packages\\numpy\\core\\_methods.py:32: RuntimeWarning: invalid value encountered in reduce\n",
      "  return umr_sum(a, axis, dtype, out, keepdims)\n",
      "C:\\Users\\Jimei\\Anaconda3\\lib\\site-packages\\numpy\\lib\\nanfunctions.py:1320: RuntimeWarning: overflow encountered in multiply\n",
      "  sqr = np.multiply(arr, arr, out=arr)\n",
      "C:\\Users\\Jimei\\Anaconda3\\lib\\site-packages\\numpy\\core\\_methods.py:32: RuntimeWarning: overflow encountered in reduce\n",
      "  return umr_sum(a, axis, dtype, out, keepdims)\n",
      "C:\\Users\\Jimei\\Anaconda3\\lib\\site-packages\\numpy\\core\\_methods.py:32: RuntimeWarning: invalid value encountered in reduce\n",
      "  return umr_sum(a, axis, dtype, out, keepdims)\n",
      "C:\\Users\\Jimei\\Anaconda3\\lib\\site-packages\\sklearn\\preprocessing\\data.py:765: RuntimeWarning: invalid value encountered in true_divide\n",
      "  X /= self.scale_\n"
     ]
    }
   ],
   "source": [
    "scaler = preprocessing.StandardScaler(with_mean=True, with_std=True).fit(X[alpha])\n",
    "#scaler.mean_\n",
    "#scaler.scale_\n",
    "X_scaled = scaler.transform(X[alpha])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_scaled=pd.DataFrame(X_scaled)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_scaled=X_scaled.fillna(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[2.04642092e+01 1.61839370e+01 9.61763777e+00 7.61172217e+00\n",
      " 5.65664839e+00 5.22999424e+00 3.94525174e+00 3.73253101e+00\n",
      " 2.82056483e+00 2.58941017e+00 2.34169439e+00 2.17105697e+00\n",
      " 2.02066004e+00 1.83246736e+00 1.68361621e+00 1.60220278e+00\n",
      " 1.43378509e+00 1.36542229e+00 1.32790564e+00 1.25712269e+00\n",
      " 1.20142865e+00 1.19497118e+00 1.14941658e+00 1.13227253e+00\n",
      " 1.11902100e+00 1.08323332e+00 1.07041691e+00 1.04875839e+00\n",
      " 1.02867281e+00 1.01113896e+00 1.00094910e+00 1.00017470e+00\n",
      " 9.99001456e-01 9.88980778e-01 9.74057673e-01 9.68252005e-01\n",
      " 9.60223210e-01 9.41410782e-01 9.32348216e-01 9.29407783e-01\n",
      " 9.19794027e-01 9.08759868e-01 8.96327397e-01 8.82771152e-01\n",
      " 8.47851540e-01 8.40893320e-01 8.15820105e-01 8.08379170e-01\n",
      " 7.89076320e-01 7.80761521e-01 7.58097339e-01 7.37762831e-01\n",
      " 7.27896558e-01 7.05472280e-01 7.01448263e-01 6.77429286e-01\n",
      " 6.66544838e-01 6.58074140e-01 6.43395560e-01 6.28844175e-01\n",
      " 6.19344574e-01 6.03400715e-01 5.88011072e-01 5.78228577e-01\n",
      " 5.67277034e-01 5.46294783e-01 5.41658723e-01 5.31635604e-01\n",
      " 5.23754006e-01 5.17099521e-01 4.98911262e-01 4.89009467e-01\n",
      " 4.84898013e-01 4.72275464e-01 4.67857767e-01 4.59647146e-01\n",
      " 4.52120675e-01 4.32749613e-01 4.18208012e-01 4.09165684e-01\n",
      " 3.97507915e-01 3.89683151e-01 3.78619061e-01 3.71308659e-01\n",
      " 3.53007492e-01 3.51400315e-01 3.31710623e-01 3.28451183e-01\n",
      " 3.18162650e-01 3.15754784e-01 3.01524904e-01 2.92956296e-01\n",
      " 2.87530353e-01 2.81711229e-01 2.73647904e-01 2.68204332e-01\n",
      " 2.58918310e-01 2.48679582e-01 2.44069384e-01 2.33042509e-01\n",
      " 2.22642332e-01 2.17702762e-01 2.14572055e-01 2.04552801e-01\n",
      " 1.97834695e-01 1.87080699e-01 1.79902294e-01 1.68295853e-01\n",
      " 1.61259181e-01 1.55453745e-01 1.51390673e-01 1.46628828e-01\n",
      " 1.44476254e-01 1.32777485e-01 1.29430583e-01 1.26857830e-01\n",
      " 1.12530868e-01 1.09860644e-01 1.07728795e-01 1.04552376e-01\n",
      " 1.03429695e-01 1.02649312e-01 9.57189029e-02 9.42521707e-02\n",
      " 9.01089564e-02 8.67353503e-02 7.89177301e-02 7.55482764e-02\n",
      " 7.14350871e-02 7.05638309e-02 6.35346318e-02 6.09204762e-02\n",
      " 5.54537339e-02 5.24852891e-02 4.78850853e-02 4.32326773e-02\n",
      " 3.50703527e-02 3.24171848e-02 2.30734950e-02 1.82033718e-02\n",
      " 1.80973751e-02 1.61682829e-02 1.18794463e-02 1.12384803e-02\n",
      " 7.98783580e-03 7.18470771e-03 2.27755123e-03 1.57315570e-03\n",
      " 9.52359422e-04 7.98516644e-04 3.17908638e-04 4.03585365e-30\n",
      " 1.30087447e-31 1.30087447e-31 1.30087447e-31 1.30087447e-31\n",
      " 1.30087447e-31 1.30087447e-31 1.30087447e-31 1.30087447e-31\n",
      " 1.30087447e-31 1.30087447e-31 1.30087447e-31 1.30087447e-31\n",
      " 1.30087447e-31 1.30087447e-31 1.30087447e-31 1.30087447e-31\n",
      " 1.30087447e-31 1.30087447e-31 1.30087447e-31 1.30087447e-31\n",
      " 1.30087447e-31 1.30087447e-31 1.30087447e-31 1.30087447e-31\n",
      " 1.30087447e-31 1.30087447e-31 1.30087447e-31]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1f68371d358>]"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Try PCA\n",
    "pca = PCA()\n",
    "pca.fit(X_scaled)\n",
    "print(pca.explained_variance_)\n",
    "plt.plot(pca.explained_variance_, linewidth=2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [],
   "source": [
    "pca_reduc = PCA(n_components=20)\n",
    "X_reduced = pca_reduc.fit(X_scaled).transform(X_scaled)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train=X_reduced[0:165527]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_test=X_reduced[165528:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train=y[0:165527]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_test=y[165528:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Jimei\\Anaconda3\\lib\\site-packages\\h5py\\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n",
      "  from ._conv import register_converters as _register_converters\n",
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from keras.optimizers import Adam\n",
    "from keras.layers.core import Dense, Dropout, Activation\n",
    "from keras.models import Sequential\n",
    "from keras.callbacks import EarlyStopping"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 165527 samples, validate on 167808 samples\n",
      "Epoch 1/100\n",
      " - 4s - loss: 0.2477 - acc: 0.8929 - val_loss: 0.2609 - val_acc: 0.8972\n",
      "Epoch 2/100\n",
      " - 4s - loss: 0.2174 - acc: 0.9039 - val_loss: 0.2369 - val_acc: 0.8997\n",
      "Epoch 3/100\n",
      " - 4s - loss: 0.2118 - acc: 0.9061 - val_loss: 0.2322 - val_acc: 0.9001\n",
      "Epoch 4/100\n",
      " - 6s - loss: 0.2090 - acc: 0.9075 - val_loss: 0.2282 - val_acc: 0.9011\n",
      "Epoch 5/100\n",
      " - 5s - loss: 0.2070 - acc: 0.9083 - val_loss: 0.2248 - val_acc: 0.9018\n",
      "Epoch 6/100\n",
      " - 6s - loss: 0.2057 - acc: 0.9087 - val_loss: 0.2232 - val_acc: 0.9030\n",
      "Epoch 7/100\n",
      " - 5s - loss: 0.2048 - acc: 0.9094 - val_loss: 0.2210 - val_acc: 0.9032\n",
      "Epoch 8/100\n",
      " - 6s - loss: 0.2039 - acc: 0.9097 - val_loss: 0.2205 - val_acc: 0.9034\n",
      "Epoch 9/100\n",
      " - 5s - loss: 0.2031 - acc: 0.9101 - val_loss: 0.2202 - val_acc: 0.9036\n",
      "Epoch 10/100\n",
      " - 4s - loss: 0.2027 - acc: 0.9102 - val_loss: 0.2195 - val_acc: 0.9040\n",
      "Epoch 11/100\n",
      " - 4s - loss: 0.2022 - acc: 0.9105 - val_loss: 0.2184 - val_acc: 0.9040\n",
      "Epoch 12/100\n",
      " - 4s - loss: 0.2016 - acc: 0.9106 - val_loss: 0.2179 - val_acc: 0.9039\n",
      "Epoch 13/100\n",
      " - 4s - loss: 0.2012 - acc: 0.9107 - val_loss: 0.2183 - val_acc: 0.9035\n",
      "Epoch 14/100\n",
      " - 4s - loss: 0.2006 - acc: 0.9110 - val_loss: 0.2178 - val_acc: 0.9037\n",
      "Epoch 15/100\n",
      " - 5s - loss: 0.2004 - acc: 0.9110 - val_loss: 0.2180 - val_acc: 0.9035\n",
      "Epoch 16/100\n",
      " - 5s - loss: 0.2002 - acc: 0.9113 - val_loss: 0.2180 - val_acc: 0.9035\n",
      "Epoch 17/100\n",
      " - 5s - loss: 0.2000 - acc: 0.9113 - val_loss: 0.2178 - val_acc: 0.9034\n",
      "Epoch 18/100\n",
      " - 4s - loss: 0.1996 - acc: 0.9116 - val_loss: 0.2175 - val_acc: 0.9036\n",
      "Epoch 19/100\n",
      " - 4s - loss: 0.1994 - acc: 0.9116 - val_loss: 0.2179 - val_acc: 0.9036\n",
      "Epoch 20/100\n",
      " - 4s - loss: 0.1992 - acc: 0.9119 - val_loss: 0.2176 - val_acc: 0.9037\n",
      "Epoch 21/100\n",
      " - 4s - loss: 0.1989 - acc: 0.9119 - val_loss: 0.2183 - val_acc: 0.9039\n",
      "Epoch 22/100\n",
      " - 4s - loss: 0.1987 - acc: 0.9119 - val_loss: 0.2176 - val_acc: 0.9038\n",
      "Epoch 23/100\n",
      " - 4s - loss: 0.1986 - acc: 0.9120 - val_loss: 0.2177 - val_acc: 0.9041\n",
      "Epoch 24/100\n",
      " - 4s - loss: 0.1983 - acc: 0.9119 - val_loss: 0.2175 - val_acc: 0.9042\n",
      "Epoch 25/100\n",
      " - 4s - loss: 0.1982 - acc: 0.9122 - val_loss: 0.2185 - val_acc: 0.9038\n",
      "Epoch 26/100\n",
      " - 4s - loss: 0.1980 - acc: 0.9121 - val_loss: 0.2181 - val_acc: 0.9039\n",
      "Epoch 27/100\n",
      " - 5s - loss: 0.1979 - acc: 0.9122 - val_loss: 0.2185 - val_acc: 0.9038\n",
      "Epoch 28/100\n",
      " - 4s - loss: 0.1977 - acc: 0.9121 - val_loss: 0.2187 - val_acc: 0.9040\n",
      "Epoch 29/100\n",
      " - 4s - loss: 0.1975 - acc: 0.9124 - val_loss: 0.2192 - val_acc: 0.9037\n",
      "Epoch 30/100\n",
      " - 4s - loss: 0.1974 - acc: 0.9124 - val_loss: 0.2195 - val_acc: 0.9035\n",
      "Epoch 31/100\n",
      " - 4s - loss: 0.1972 - acc: 0.9125 - val_loss: 0.2197 - val_acc: 0.9035\n",
      "Epoch 32/100\n",
      " - 5s - loss: 0.1971 - acc: 0.9125 - val_loss: 0.2196 - val_acc: 0.9037\n",
      "Epoch 33/100\n",
      " - 4s - loss: 0.1969 - acc: 0.9126 - val_loss: 0.2199 - val_acc: 0.9037\n",
      "Epoch 34/100\n",
      " - 5s - loss: 0.1969 - acc: 0.9127 - val_loss: 0.2202 - val_acc: 0.9035\n",
      "Epoch 35/100\n",
      " - 4s - loss: 0.1967 - acc: 0.9127 - val_loss: 0.2200 - val_acc: 0.9039\n",
      "Epoch 36/100\n",
      " - 4s - loss: 0.1968 - acc: 0.9126 - val_loss: 0.2202 - val_acc: 0.9038\n",
      "Epoch 37/100\n",
      " - 5s - loss: 0.1966 - acc: 0.9128 - val_loss: 0.2209 - val_acc: 0.9034\n",
      "Epoch 38/100\n",
      " - 4s - loss: 0.1966 - acc: 0.9127 - val_loss: 0.2210 - val_acc: 0.9030\n",
      "Epoch 39/100\n",
      " - 4s - loss: 0.1962 - acc: 0.9130 - val_loss: 0.2206 - val_acc: 0.9034\n",
      "Epoch 40/100\n",
      " - 4s - loss: 0.1963 - acc: 0.9129 - val_loss: 0.2204 - val_acc: 0.9032\n",
      "Epoch 41/100\n",
      " - 4s - loss: 0.1962 - acc: 0.9128 - val_loss: 0.2205 - val_acc: 0.9033\n",
      "Epoch 42/100\n",
      " - 4s - loss: 0.1961 - acc: 0.9129 - val_loss: 0.2207 - val_acc: 0.9031\n",
      "Epoch 43/100\n",
      " - 5s - loss: 0.1959 - acc: 0.9130 - val_loss: 0.2211 - val_acc: 0.9031\n",
      "Epoch 44/100\n",
      " - 4s - loss: 0.1959 - acc: 0.9130 - val_loss: 0.2200 - val_acc: 0.9032\n",
      "Epoch 45/100\n",
      " - 5s - loss: 0.1957 - acc: 0.9129 - val_loss: 0.2207 - val_acc: 0.9030\n",
      "Epoch 46/100\n",
      " - 4s - loss: 0.1955 - acc: 0.9130 - val_loss: 0.2206 - val_acc: 0.9031\n",
      "Epoch 47/100\n",
      " - 4s - loss: 0.1956 - acc: 0.9131 - val_loss: 0.2204 - val_acc: 0.9034\n",
      "Epoch 48/100\n",
      " - 4s - loss: 0.1955 - acc: 0.9131 - val_loss: 0.2201 - val_acc: 0.9035\n",
      "Epoch 49/100\n",
      " - 4s - loss: 0.1956 - acc: 0.9130 - val_loss: 0.2204 - val_acc: 0.9033\n",
      "Epoch 50/100\n",
      " - 4s - loss: 0.1954 - acc: 0.9131 - val_loss: 0.2203 - val_acc: 0.9032\n",
      "Epoch 51/100\n",
      " - 4s - loss: 0.1953 - acc: 0.9132 - val_loss: 0.2195 - val_acc: 0.9038\n",
      "Epoch 52/100\n",
      " - 4s - loss: 0.1954 - acc: 0.9132 - val_loss: 0.2204 - val_acc: 0.9032\n",
      "Epoch 53/100\n",
      " - 5s - loss: 0.1952 - acc: 0.9131 - val_loss: 0.2201 - val_acc: 0.9039\n",
      "Epoch 54/100\n",
      " - 6s - loss: 0.1951 - acc: 0.9131 - val_loss: 0.2201 - val_acc: 0.9036\n",
      "Epoch 55/100\n",
      " - 4s - loss: 0.1952 - acc: 0.9134 - val_loss: 0.2207 - val_acc: 0.9035\n",
      "Epoch 56/100\n",
      " - 4s - loss: 0.1952 - acc: 0.9130 - val_loss: 0.2203 - val_acc: 0.9035\n",
      "Epoch 57/100\n",
      " - 4s - loss: 0.1952 - acc: 0.9131 - val_loss: 0.2201 - val_acc: 0.9037\n",
      "Epoch 58/100\n",
      " - 4s - loss: 0.1950 - acc: 0.9133 - val_loss: 0.2206 - val_acc: 0.9035\n",
      "Epoch 59/100\n",
      " - 4s - loss: 0.1951 - acc: 0.9134 - val_loss: 0.2196 - val_acc: 0.9037\n",
      "Epoch 60/100\n",
      " - 4s - loss: 0.1951 - acc: 0.9135 - val_loss: 0.2196 - val_acc: 0.9041\n",
      "Epoch 61/100\n",
      " - 4s - loss: 0.1950 - acc: 0.9132 - val_loss: 0.2195 - val_acc: 0.9035\n",
      "Epoch 62/100\n",
      " - 4s - loss: 0.1948 - acc: 0.9136 - val_loss: 0.2199 - val_acc: 0.9039\n",
      "Epoch 63/100\n",
      " - 4s - loss: 0.1948 - acc: 0.9135 - val_loss: 0.2208 - val_acc: 0.9033\n",
      "Epoch 64/100\n",
      " - 4s - loss: 0.1947 - acc: 0.9134 - val_loss: 0.2200 - val_acc: 0.9037\n",
      "Epoch 65/100\n",
      " - 4s - loss: 0.1947 - acc: 0.9134 - val_loss: 0.2195 - val_acc: 0.9037\n",
      "Epoch 66/100\n",
      " - 4s - loss: 0.1948 - acc: 0.9131 - val_loss: 0.2203 - val_acc: 0.9035\n",
      "Epoch 67/100\n",
      " - 4s - loss: 0.1949 - acc: 0.9132 - val_loss: 0.2198 - val_acc: 0.9039\n",
      "Epoch 68/100\n",
      " - 4s - loss: 0.1949 - acc: 0.9135 - val_loss: 0.2195 - val_acc: 0.9037\n",
      "Epoch 69/100\n",
      " - 4s - loss: 0.1947 - acc: 0.9134 - val_loss: 0.2197 - val_acc: 0.9038\n",
      "Epoch 70/100\n",
      " - 4s - loss: 0.1945 - acc: 0.9135 - val_loss: 0.2194 - val_acc: 0.9039\n",
      "Epoch 71/100\n",
      " - 4s - loss: 0.1946 - acc: 0.9135 - val_loss: 0.2205 - val_acc: 0.9035\n",
      "Epoch 72/100\n",
      " - 5s - loss: 0.1942 - acc: 0.9136 - val_loss: 0.2206 - val_acc: 0.9034\n",
      "Epoch 73/100\n",
      " - 4s - loss: 0.1946 - acc: 0.9135 - val_loss: 0.2204 - val_acc: 0.9034\n",
      "Epoch 74/100\n",
      " - 4s - loss: 0.1944 - acc: 0.9136 - val_loss: 0.2209 - val_acc: 0.9031\n",
      "Epoch 00074: early stopping\n"
     ]
    }
   ],
   "source": [
    "n_inputs = X_train.shape[1]\n",
    "model = Sequential([\n",
    "    Dense(n_inputs,input_shape=(n_inputs, ), activation='relu'),\n",
    "    Dense(16, activation='relu'),\n",
    "    Dense(16,activation='relu'),\n",
    "    Dense(2, activation='softmax')\n",
    "])\n",
    "model.compile(optimizer = 'adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])\n",
    "early_stopping = EarlyStopping(monitor='val_loss', patience=50, verbose=2)\n",
    "history = model.fit(X_train, y_train, epochs=100, batch_size=50, validation_data=(X_test, y_test), verbose=2, shuffle=False, callbacks=[early_stopping])# loss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD8CAYAAACb4nSYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XucVNWZ6P3f01Vd1V3V9wvNpbmDIAiCNCgaNRpUMAnmYowaMuaNCTNJnJm8vsmJTmY8ozPnHSecyRgzxmiMJ5NJovGWGTV4Fy8ZRWkQuSMXgW4a6Kahu6HvVf2cP1Y1FE11U0A1VVQ938+nPl1777V3PX179tprrb22qCrGGGMyQ1ayAzDGGHPmWNI3xpgMYknfGGMyiCV9Y4zJIJb0jTEmg1jSN8aYDGJJ3xhjMoglfWOMySCW9I0xJoN4kx1AX2VlZTpmzJhkh2GMMWeVlStX7lfV8hOVS7mkP2bMGKqrq5MdhjHGnFVEZGc85ax5xxhjMoglfWOMySCW9I0xJoOkXJu+Mcaciu7ubmpra+no6Eh2KIMqJyeHyspKsrOzT2l/S/rGmLRQW1tLfn4+Y8aMQUSSHc6gUFUaGxupra1l7Nixp3QMa94xxqSFjo4OSktL0zbhA4gIpaWlp3U1Y0nfGJM20jnh9zrd7zGupC8i80Vks4hsFZE7Ymy/XUQ2iMgaEXlNREZHbRslIi+LyMZImTGnFXF/Olpg2T9BrY3xN8aY/pww6YuIB3gAWABMAW4SkSl9in0AVKnqdOAp4EdR234NLFHVc4E5QH0iAj9OTwjevBdq3h+UwxtjzECampr42c9+dtL7XXvttTQ1NQ1CRLHFU9OfA2xV1e2q2gU8DlwXXUBVl6lqW2RxOVAJEDk5eFX1lUi5w1HlEsuf7752tgzK4Y0xZiD9Jf1wODzgfkuXLqWoqGiwwjpOPEl/BFATtVwbWdefW4EXIu/PAZpE5BkR+UBElkSuHBLPkw3ZAdfMY4wxZ9gdd9zBtm3bmDFjBrNnz+aKK67g5ptvZtq0aQB87nOfY9asWUydOpWHH374yH5jxoxh//797Nixg3PPPZdvfvObTJ06lauvvpr29vaExxnPkM1YvQYas6DIIqAKuDzq+JcCM4FdwO+BrwG/7LPfYmAxwKhRo+IIqR/+AuhsPvX9jTFp4e7n1rOhLrEVwCnDC/ifn53a7/Z7772XdevWsXr1at544w0+/elPs27duiNDKx999FFKSkpob29n9uzZfPGLX6S0tPSYY2zZsoXHHnuMX/ziF9xwww08/fTTLFq0KKHfRzw1/VpgZNRyJVDXt5CIzAN+CCxU1c6ofT+INA2FgP8ELui7r6o+rKpVqlpVXn7CSeL6l1NgNX1jTEqYM2fOMWPp77//fs4//3wuuugiampq2LJly3H7jB07lhkzZgAwa9YsduzYkfC44qnprwAmishYYDdwI3BzdAERmQk8BMxX1fo++xaLSLmqNgBXAoM3vMZfYG36xpgBa+RnSjAYPPL+jTfe4NVXX+Xdd98lEAjwyU9+MuZYe7/ff+S9x+MZlOadE9b0IzX024CXgI3AE6q6XkTuEZGFkWJLgDzgSRFZLSLPRvYNA98DXhORtbimol8k/LvoZTV9Y0yS5Ofnc+jQoZjbmpubKS4uJhAIsGnTJpYvX36GozsqrmkYVHUpsLTPurui3s8bYN9XgOmnGuBJ8RdA064z8lHGGBOttLSUSy65hPPOO4/c3FwqKiqObJs/fz4///nPmT59OpMmTeKiiy5KWpzpNfeO1fSNMUn0u9/9LuZ6v9/PCy+8EHNbb7t9WVkZ69atO7L+e9/7XsLjg3SbhsHa9I0xZkDplfRzCiHUAaGuZEdijDEpKb2Svr/AfbXavjHGxJReST8nkvQ77AYtY4yJJb2SvtX0jTFmQOmV9Htr+p2xx8oaY0ymS6+k31vTt2Gbxpgz7FSnVga47777aGsbnAmI+0qvpJ9jzTvGmOQ4W5J+et2c5S90X62mb4w5w6KnVr7qqqsYMmQITzzxBJ2dnXz+85/n7rvvprW1lRtuuIHa2lrC4TB/93d/x759+6irq+OKK66grKyMZcuWDWqc6ZX0raZvjAF44Q7Yuzaxxxw6DRbc2+/m6KmVX375ZZ566inef/99VJWFCxfy1ltv0dDQwPDhw/njH/8IuDl5CgsL+fGPf8yyZcsoKytLbMwxpFfzjicbvLk2ZNMYk1Qvv/wyL7/8MjNnzuSCCy5g06ZNbNmyhWnTpvHqq6/ygx/8gLfffpvCwsIzHlt61fTB1fatpm9MZhugRn4mqCp33nknf/7nf37ctpUrV7J06VLuvPNOrr76au66664YRxg86VXTBzeCx9r0jTFnWPTUytdccw2PPvoohw8fBmD37t3U19dTV1dHIBBg0aJFfO9732PVqlXH7TvYrKZvjDEJED218oIFC7j55puZO3cuAHl5efzmN79h69atfP/73ycrK4vs7GwefPBBABYvXsyCBQsYNmzYoHfkimrMx90mTVVVlVZXn8bDtX79OXdz1jdfS1xQxpiUt3HjRs4999xkh3FGxPpeRWSlqladaN/0a96xmr4xxvQr/ZK+tekbY0y/0i/p5xRaTd+YDJVqzdWD4XS/x/RL+v4C6G6DcHeyIzHGnEE5OTk0NjamdeJXVRobG8nJyTnlY6Tn6B1wnbmBkuTGYow5YyorK6mtraWhoSHZoQyqnJwcKisrT3n/uJK+iMwHfgJ4gEdU9d4+228HvgGEgAbg66q6M7ItDPTeD71LVReecrTx8Ec9SMWSvjEZIzs7m7FjxyY7jJR3wqQvIh7gAeAqoBZYISLPquqGqGIfAFWq2iYi3wJ+BHw5sq1dVWckOO7+2fw7xhjTr3ja9OcAW1V1u6p2AY8D10UXUNVlqto7L+hy4NSvPU6XzalvjDH9iifpjwBqopZrI+v6cyvwQtRyjohUi8hyEfncKcR4cqymb4wx/YqnTV9irIvZPS4ii4Aq4PKo1aNUtU5ExgGvi8haVd3WZ7/FwGKAUaNGxRV4v6ymb4wx/Yqnpl8LjIxargTq+hYSkXnAD4GFqtrZu15V6yJftwNvADP77quqD6tqlapWlZeXn9Q3cJycyFSlVtM3xpjjxJP0VwATRWSsiPiAG4FnowuIyEzgIVzCr49aXywi/sj7MuASILoDOPGspm+MMf06YfOOqoZE5DbgJdyQzUdVdb2I3ANUq+qzwBIgD3hSRODo0MxzgYdEpAd3grm3z6ifxPP6wJsDnfYgFWOM6SuucfqquhRY2mfdXVHv5/Wz3zvAtNMJ8JTY/DvGGBNT2kzDcKijmyUvbWLVroM206YxxvQjbaZhCIWVB5ZtoyzPzwVW0zfGmJjSpqYf8HsAaOsKW03fGGP6kTZJ3+fJwpsltHaGrE3fGGP6kTZJX0QI+DxW0zfGmAGkTdIHCPq9tHWFwF9oNX1jjIkhrZJ+rs9Da29Nv7sVwqFkh2SMMSklrZJ+0OelrbdNH6yJxxhj+kirpB+IrumDJX1jjOkjrZL+0TZ9m3/HGGNiSaukH/B5aOu0mr4xxvQnrZJ+0Oel1Wr6xhjTr7RK+gF/7zh9m1PfGGNiSa+kH7k5S/35boXV9I0x5hhplvS9hHuUTk+eW2Fz6htjzDHSKukHfZFJ13q84PFbTd8YY/pIq6Qf8LuZols7Qzb/jjHGxJBWST/oc0m/rStsM20aY0wMaZX0j86pbzV9Y4yJJa2SvtX0jTFmYGmV9AORjlxr0zfGmNjiSvoiMl9ENovIVhG5I8b220Vkg4isEZHXRGR0n+0FIrJbRP4tUYHH0pv0XU3f5tQ3xpi+Tpj0RcQDPAAsAKYAN4nIlD7FPgCqVHU68BTwoz7b/wF48/TDHViwd/SOtekbY0xM8dT05wBbVXW7qnYBjwPXRRdQ1WWq2hZZXA5U9m4TkVlABfByYkLu35GafmekTb/rMPSEB/tjjTHmrBFP0h8B1EQt10bW9edW4AUAEckC/gX4/kAfICKLRaRaRKobGhriCCm2gK9PTR+stm+MMVHiSfoSY53GLCiyCKgClkRWfRtYqqo1scofOZjqw6papapV5eXlcYQUmydLyMnOor139A5Yu74xxkTxxlGmFhgZtVwJ1PUtJCLzgB8Cl6tqZ2T1XOBSEfk2kAf4ROSwqh7XGZwoR6ZXtpq+McYcJ56kvwKYKCJjgd3AjcDN0QVEZCbwEDBfVet716vqV6LKfA3X2TtoCR/cw9GPtOmD1fSNMSbKCZt3VDUE3Aa8BGwEnlDV9SJyj4gsjBRbgqvJPykiq0Xk2UGL+ASspm+MMf2Lp6aPqi4FlvZZd1fU+3lxHONXwK9OLryTd+RBKv5St8Jq+sYYc0Ra3ZELkZp+p9X0jTEmlrRL+r1Pzzrapm8PUjHGmF5pl/SDfq9L+tk54PFZTd8YY6KkXdJ3Nf1QZKEUWo4bXWqMMRkrLZN+a2dk6oUxl8K2120qBmOMiUjDpO+lvTtMuEfhnGugrRFqq5MdljHGpIS0S/rByNOz2rvDMGEeiAc+ejHJURljTGpIu6QfOPL0rBDkFsHoiy3pG2NMRNol/d6afltvu/4510D9Bji4M4lRGWNMaki7pH/M9MoA5yxwX7cM+nT+xhiT8tIw6Uc9MhGgbAKUjIfNLyQxKmOMSQ1pmPQjNf3O0NGVkxbAjreh83CSojLGmNSQdkn/SJt+V9TY/HOugXAXbH8jOUEZY0yKSL+kH6umP2ou+AttFI8xJuOlXdLvbdNv746q6XuyYcKn4KOXoKcnSZEZY0zypV3SD/p7a/p9pl44Zz601sOeD5IQlTHGpIa0S/p+bxZZwtFJ13pNvAoky9X2jTEmQ6Vd0hcRAj7v8TX9QAmMvAg2PpecwIwxJgWkXdKHPtMrRzvvC+7u3L3rznxQxhiTAtIy6Qf9Xlq7YkynPPULkOWFtU+c+aCMMSYFxJX0RWS+iGwWka0ickeM7beLyAYRWSMir4nI6Mj60SKyUkRWi8h6EfmLRH8DsQR8Htpj1fSDpW7mzTVP2igeY0xGOmHSFxEP8ACwAJgC3CQiU/oU+wCoUtXpwFPAjyLr9wAXq+oM4ELgDhEZnqjg+xOM1abfa/oNcKgOdv5psMMwxpiUE09Nfw6wVVW3q2oX8DhwXXQBVV2mqm2RxeVAZWR9l6p2Rtb74/y80xbw99OmD24CNl8+rLEmHmNM5oknCY8AaqKWayPr+nMrcGR2MxEZKSJrIsf4Z1Ud9IfWBn39tOkD+AJw7mdhw39Bd8dgh2KMMSklnqQvMdZpzIIii4AqYMmRgqo1kWafCcAtIlIRY7/FIlItItUNDQ3xRT6AXJ+Hts5+avrgmng6W2xaBmNMxokn6dcCI6OWK4HjausiMg/4IbAwqknniEgNfz1waYxtD6tqlapWlZeXxxt7v4I+T/81fYCxl0HeUFj75Gl/ljHGnE3iSforgIkiMlZEfMCNwLPRBURkJvAQLuHXR62vFJHcyPti4BJgc6KC70/A76V9oKSf5YFp17u7c9sODHY4xhiTMk6Y9FU1BNwGvARsBJ5Q1fUico+ILIwUWwLkAU9Ghmf2nhTOBd4TkQ+BN4H/raprE/5d9BH0eegK99AVGmBY5vQboKcbNvznYIdjjDEpwxtPIVVdCizts+6uqPfz+tnvFWD66QR4KnofpNLeFcbn7ee8NnQ6lE92o3iqvn4GozPGmORJ0zty3fTKrf0N2wQQgfNvhF3vQsOgtzgZY0xKSMuk31vT73esfq8Zi8Djg+pHz0BUxhiTfGma9CM1/f7uyu2VVw5TPgerfwddrWcgMmOMSa40TfqRB6mcqKYPMPtWN2bfhm8aYzJAWib93jb9AYdt9hp5IVScByseAY15z5kxxqSNtEz6R2v6cSR9EVfb37sWalcMcmTGGJNcaZn0e2v6A07FEG3aDW4SthWPDGJUxhiTfGmZ9E+qpg/gz3PDN9f/AVobBzEyY4xJrjRN+idZ0wfXxBPugg/+Y5CiMsaY5EvLpJ/tycLnyYq/pg8w5FwY/Qmo/iWEuwcvOGOMSaK0TPrgHqQS85GJA7n4L6FpFyz9vo3kMcakpbRN+gM+SKU/k+bDJd+Flf8H3vv54ARmjDFJFNeEa2ejgG+ARyYO5FP/Exq3wkt/A6UTYOJViQ/OGGOSJG1r+gH/AA9HH0hWFnz+IaiYCk/+P7BvQ+KDM8aYJEnbpB881Zo+uCGcN/3ePU/3sS/bg1aMMWkjbZN+wHeKNf1ehSPgxsegpc419RhjTBpI46R/GjX9XpWzXMfuh4/BttcTE5gxxiRR2ib9oN9D28mO3onlsu+7Dt3nvmvTLxtjznppm/QDPm9ikn52Dnz2fmjaCW/80+kfzxhjkihtk37Q56G1K4Qm4iarMZfArK/Buw9A3QenfzxjjEmStE36Ab8XVejo7knMAefdDcEh8OxfQfg0+wrM2SfU5UZxNdVA/SZoP5iY44a74eO3Ydn/D7uWJ+aY5uykCu1Ng/4xcd2cJSLzgZ8AHuARVb23z/bbgW8AIaAB+Lqq7hSRGcCDQAEQBv6Xqv4+gfH3K+g7+nD03Mj705JbBNcugSe+Cg/Mhsmfca/K2W5sv0k/3R2w8lfw3/fBoT3HbpMsGDELxl8J4z/l3nvi+HfqaHE3/9VvhK2vwtbXoLPZbXvrf8OCf4bZ33DPeYh24GP3zIecAsgphJwiCJS65VTSvBuycyFQEl95VdAeyErA/2jv8Vb9Gvatg0/8v1AwPDHHHUwNm2Hd0+5VMAJueXZQP+6Ef6Ui4gEeAK4CaoEVIvKsqkbftfQBUKWqbSLyLeBHwJeBNuDPVHWLiAwHVorIS6o66KezIw9H7wxDXoIOOmUhfOEX8OHjsPxBeOd+V/uf8CkYfYlrBioee/w/rDm7hLpg9W9cEm7Z7Sbim30r+PLAF4TsAOzfAtteg7eWwJv/DFle9w9bNAqKRkOw1HX8dx5yr/aD0LgNWuuPfk5wCEz5LJwz3500nvsuLP2eS1gLloDX564s3voRfPBb0Bh9VHkVUDoRyiZC+SRXCRk63e3bSxX2fwQ170O40z07wh/5XiqmuVhj6WiBPauhZJz73vr7u25vgvXPuP+LmvfcuiFTYNRc9xo+w/1MomNq+AjWPQVrn3LDoq+6G+YsPr3/nebd8OxtR0faffAbuOSv3ZxavuDA+4a73e8wUf+7davh9X+EtkYIdUB3O4Q6wZ8PwXIIlrkTY80K2LcWEBjzCZj2pcR8/gDkRG3eIjIX+HtVvSayfCeAqsbs1RSRmcC/qeolMbZ9CFyvqlv6+7yqqiqtrq6O/zvoxwtr9/Ct367ixe9eyuShg1Ab6miGLa/Apufh47fcLxcgfzhMWgBzvwOl4xP/uebktR1wfTG7V0HdKmiuhfyhrhZYMAJyi+FwvUs+LbuhYZOr2VfOgSv/FsZd3v+x2w/C9jdhz4fQXOMm7Gva5T7Tn+dOFP5I7bxkjBsJ1vsqm3TsVWJP2CWKP/3YJcuh09yVBkDV12H6l13y6Ghyf3+H98H+rdC4xSX13iYnby5UVsGw890Vwq53ob2fGwx9ea5GPPc7roYO0NMDH/4OXr376EnKX+Bmoi2d6BJjTxh6ul0c2990J5OySXD+l93+u95xJ5muw25/yYKCSvczaD/orloQGHup27b9DZhwFVz3AORXnNzvVxXW/B6W/g8X01X3wIR58Nrd7hkZ+cPgir+B8653N1xGO1zvTu7Vj0LxaJd0z7seyiacXAzRsaz8FbzwA9c6MHQaeHPcz9bjd8/jbmuE1gb3KhkP066HqZ93f5OnQURWqmrVCcvFkfSvB+ar6jciy18FLlTV2/op/2/AXlX9xz7r5wD/DkxV1X4b2hOV9N/8qIFbHn2fp791MbNGF5/28Qak6i7Rdv7Jtc9ufsH98U25zo3zHz5jcD8/E3V3QP162LsOPNmQNwTyhrqvh/ZC7ftQW+0egdm49eh+Zee4WufhfS7Jt+2PbJCjJ4LCSpj5VZc4knHVtvYp+K/b3N/QzEVu2HBh5Yn3O7TX1bR3LXeJfs8aKB4TqXFf5F7+ApeIe68+VjziKi6FI2He37ufzYs/gN0r3Unvkr+Gw3tdc9S+DXBgu/uZZHndy+uHsZfB+TfB8JnH/rzCIXfVUr8RDn7sTkAHP3b7TbnuaKJTdXG8/LfuJPSZf3Wx+oLuBBar+VTV/V4/ehE2Pg81y2HkRfC5nx1b2dq1HF68053ss4Mw+dMusY+4AJb/zF2xhzph+g3uhP/x24C672X8lW46lopp7mrH43VlD+11r56QOxH2NmV1tcEfb3f39Yy/Er7wSP9XUYMgkUn/S8A1fZL+HFX9yxhlFwG3AZeramfU+mHAG8Atqnpcb5WILAYWA4waNWrWzp07TxT3CVXvOMD1P3+X/7h1DpdOLD/t452UQ/vgvQdhxS/dmf2c+a4GEyw7s3GkA1X3z1i/Ceo3uASyd437Gqu5I1qw3CWuylkwosqdfHMKjy0T6nTNE4ESd/JIFQe2g3hc7fNU9YTjayv/+C131/netW45b6hrbpl2w5ntr6rfBE9/I9LcESU76K7GAiWRfoxC9zdwYLvbPmQqXPBV1zwU6/vt6XEVsrVPwYb/cldKvc77Ilzxw6MnipY6WPeMa1/fu8YldojU1gOxr5jyh7nmrOZad8X1yTvciTpR/RRxSmTSj6t5R0TmAT/FJfz6qPUFuIT/T6r65IkCSlRNf0NdC9fe/zY/XzSL+eed3mXTKetodon/jXtd2+uNv4Vh05MTy9lE1TUNrPo1bHrO/Rx75Q11P8Oh013zxdBpgLrL9EN73dfcYhg529VarX8lPj1hWPukuwKq+rpre06GUCdsfM5dhXS1QncbdB52ibqtMfI6ACVjXWXqnGtcP0rcx+9yfTG7lsN5X3B/QwPF0rAZ9q13Vyzdba75Nn/o0aaY+g3uCqh+vavpX/sjd4WYBIlM+l7gI+BTwG5gBXCzqq6PKjMTeArXDLQlar0PeAF4TlXviyfwRCX9nY2tXL7kDX58w/l84YI4Lo0H0+6V8Pgi94f7uZ+5y1pzrI5md/m/408u2e/f7Gp4U65zNfUhU6B8cvyjQozJMPEm/ROO3lHVkIjcBryEG7L5qKquF5F7gGpVfRZYghsj86S4mtUuVV0I3ABcBpSKyNcih/yaqq4+lW/qZJz0w9EH04hZsPgNN9zzya+5TsWL/6r/5p6uNtfxk8xaaqjTDaXr7dw7WTUrXNtwTpHr2J604Gi79KF9sONt16ywdw0c3HHsuPfK2bDwp+7kmKwapzFp6oQ1/TMtUTX9tq4QU+56ib+5djKLL0uRUTShTjckb9WvXXvt+Ctdp9LEq9xl4rbX3atutbtk7e3siu4gaz/okmRHC3h8kVe2GymSP9xNG3E6Whvh/Yfg/YfdpfCsW+Cib8V/Cd0TdqNPlv2Ta+v0+uHANretYprrnGzY5Jb9ha5DrWSsG+paPMbV6E915IQxGSxhNf2zVY43cnPW6UyvnGhev6vBzlnsOpXWPQ1/WHx0u3hg5Bw3hG7vGje64J37XcLNLY4k++Z+Dw+4zsve8eJDzo28prrlfevdULqd78LuasgtgYopboRC+WQ3bG7Vf0CoHSZ92p1I3n8Y3nvInXzOv8mdfMLdEO5yn5dX4Ua85A91Q9CeWexq8VO/AJ+9z3W67d8Cm5e6Ia6ebHecsZe59tQz3NllTKZL25o+wJS7XuQrF47ih5+ekpDjJVxPjxti9/FbLvGOvfTY0SVtB1yy3PicG0VQPOboK6fI1Zp7E3BHixt50FzjRrsc3OFGN8QaHVs81p1cOlrciaB5l1ufle3GWV/8V+5GH3AjEpY/6MYe9465jikyjM+T7e5cnvEV60Q15gzK+Jo+QHHAR11zR7LD6F9WFoye616xBErcOO2Zi07t+N3tbvRB/QZ3EiifDKMvPv4mkI4WV65o5PHbCivhmv/lhqDtXeuSuifbNSupHh3v3lLnhqdWfd3dHWqMSUlpnfRnjynmT1sbUVUkE2ud2blubPqJbg7LKXBDHAeSW+SuRIwxZ7W0nils7vhS9h/uZGv9QM0SxhiTOdI76Y9zQyLf3d6Y5EiMMSY1pHXSH1mSy4iiXN7dZknfGGMgzZO+iHDRuFLe3d5IT09qjVIyxphkSOukD3Dx+FKa2rrZtPdQskMxxpikS/ukP3e8m9rU2vWNMSYDkv7wolxGlwasXd8YY8iApA8wd1wp733cSNja9Y0xGS4zkv74Ug51hNhQ15LsUIwxJqkyI+mPc+3672zbf4KSxhiT3jIi6Q8pyGF8edA6c40xGS8jkj64Jp4VHx+gO9zvM9mNMSbtZU7SH1dGa1eYtbtPMB+9McaksYxJ+heNc89WtaGbxphMljFJvzTPz+Sh+SzbVJ/sUIwxJmkyJukDfKlqJNU7D7Jix4Fkh2KMMUmRUUn/5jmjKMvzcf9rW5IdijHGJEVcSV9E5ovIZhHZKiJ3xNh+u4hsEJE1IvKaiIyO2vaiiDSJyPOJDPxU5Po8LL5sHG9v2c+qXQeTHY4xxpxxJ0z6IuIBHgAWAFOAm0Sk75PGPwCqVHU68BTwo6htS4CvJibc0/eVC0dTEvTxU6vtG2MyUDw1/TnAVlXdrqpdwOPAddEFVHWZqrZFFpcDlVHbXgNSZl7joN/LNy4dy7LNDXxY05TscIwx5oyKJ+mPAGqilmsj6/pzK/DCyQQhIotFpFpEqhsaGk5m11PyZ3PHUBTI5qevW23fGJNZ4kn6EmNdzOkqRWQRUIVr0ombqj6sqlWqWlVeXn4yu56SPL+XWy8Zy6sb61lnN2sZYzJIPEm/FhgZtVwJ1PUtJCLzgB8CC1W1MzHhDZ5bLhlDfo6Xn1jbvjEmg8ST9FcAE0VkrIj4gBuBZ6MLiMhM4CFcwj8r7n4qyMnmzy8bxysb9vHiur3JDscYY86IEyZ9VQ0BtwEvARuBJ1R1vYjcIyILI8WWAHnAkyKyWkSOnBRE5G3gSeBTIlIrItck/Ls4RYsvG895Iwr4mz+spf5QR7LDMcaYQSeqqfU0qaqqKq2urj5jn7dl3yFOfk1EAAARIUlEQVQ+89M/ccmEMn55SxUisbowjDEmtYnISlWtOlG5jLojN5aJFfncsWAyr2+q57H3a068gzHGnMUyPukD3DJ3DJ+YUMY/PL+BHftbkx2OMcYMGkv6QFaWsORL08n2CN/9/Wo6usPJDskYYwaFJf2IYYW53PvF6XxY28SiR96jqa0r2SEZY0zCWdKPcu20YfzbTRewpraZL/38Xeqa2pMdkjHGJJQl/T4+PX0Y//71Oext7uALP3uHj/alzLRBxhhz2izpxzB3fClP/MVcelS5/sF3eGHtnmSHZIwxCWFJvx/nDivgmW9fzOjSIN/67Sq+87tVNB5O+dkljDFmQJb0B1BZHOCZb1/M96+ZxMvr93L1v77FUqv1G2POYpb0TyDbk8V3rpjA8395KcOLcvn2b1fxzV9Xs9s6eY0xZyFL+nGaNDSfP3z7Yu5YMJk/bdnPvH95k5+/uY3ucE+yQzPGmLhZ0j8JXk8Wf3H5eF65/TI+MbGMe1/YxKfvf5v3tjcmOzRjjImLJf1TUFkc4Bd/VsUjf1ZFa2eYLz+8nO8+/gH1LTZTpzEmtVnSPw3zplTw6u2X85dXTmDp2r1c+S9v8sjb263JxxiTsjJ+auVE+Xh/K3c/t543NjdQUeDniklDuGLyED4xoYyg35vs8IwxaS7eqZUt6SeQqvL6pnqeXlXL2x/t51BnCJ8ni4vGl/KZacO4emoFRQFfssM0xqQhS/pJ1h3uYcWOAyzbVM9L6/ex60Ab2R7hExPK+Mz04SyYNpSAz64AjDGJYUk/hagqa3c388c1e3h+zR52N7WT5/fy2fOHcUPVSGaMLLIndhljTosl/RSlqlTvPMjvV9TwxzV7aO8OM6kin+tmDuez04czsiSQ7BCNMWchS/pngUMd3Ty/Zg9PVtewalcTADNHFfHZ6cO5bsZwSvP8SY7QGHO2SGjSF5H5wE8AD/CIqt7bZ/vtwDeAENAAfF1Vd0a23QL8baToP6rqvw/0WZmU9KPVHGjj+TV7ePbDOjbuacHnyWL+eUO5+cJRXDi2xJp/jDEDSljSFxEP8BFwFVALrABuUtUNUWWuAN5T1TYR+RbwSVX9soiUANVAFaDASmCWqh7s7/MyNelH+2jfIX733i6eWVVLS0eI8eVBrpg0hNFlQcaWBhldGmB4US6eLDsRGGOceJN+PMNH5gBbVXV75MCPA9cBR5K+qi6LKr8cWBR5fw3wiqoeiOz7CjAfeCyebyJTnVORz98vnMoP5k/mj2v38PsVu/jNezvp6D5605cnSyjP81NR4KeiIIeRJQGmDi9gemUhY8vy7IRgjIkpnqQ/AqiJWq4FLhyg/K3ACwPsO+JkAsxkuT4P18+q5PpZlfT0KPsOdfDx/lZ27G+jrqmdvS0d7GvpYEdjK29taThyUgj4PJw3vJCLJ5Ry6cRyzq8sxOuxm6+NMfEl/VhVxphtQiKyCNeUc/nJ7Csii4HFAKNGjYojpMyTlSUMK8xlWGEuF48/fnso3MO2hlbW7m5m3e5mVu06yE9e28J9r24hP8fLReNKOacij9ElQUaVBhhdGqAiP4csuyIwJqPEk/RrgZFRy5VAXd9CIjIP+CFwuap2Ru37yT77vtF3X1V9GHgYXJt+HDGZPryeLCYNzWfS0Hyun1UJwMHWLt7Z1siftjbw3nZ3o1io5+iPNzfbw9iyIOPKg4wrz+PcofnMGFXEsMLcZH0bxphBFk9HrhfXkfspYDeuI/dmVV0fVWYm8BQwX1W3RK0vwXXeXhBZtQrXkXugv8+zjtzBEwr3UNfUwc4DrexobOPjhla27z/M9oZWag+20Xs+qCjwM2NkEZMq8qkozKEiP4eKghwqCvyU5fnt6sCYFJSwjlxVDYnIbcBLuCGbj6rqehG5B6hW1WeBJUAe8GRkaOEuVV2oqgdE5B9wJwqAewZK+GZweT1ZjCoNMKo0wKUTj93W0R1m454WVtc08WFNE6trmnh5wz761gmyPUJFQQ7DC3MZUZzLxIo8Jg/NZ9LQAoYX5tjQUmNSnN2cZfoVCvew/3AX+yIdxvtaOqhr7mBPUzt1zR3UHGhjT/PRZwjk+b2UBH0U5HrJ92dTkOtlRFGAseVBxpcFGVsetH4EYwZJIodsmgzl9WQxtDCHoYU5/ZZpbu/mo32H2LT3ENvqD3OwrYtDHSEOdXTz8f5W3vpoP+3d4SPlsz3CkPwchhT4I81GfoYV5TKsMIdhkauHYQV2YjBmsFjSN6elMDeb2WNKmD2mJOZ2VWVvSwcfN7SybX8re5ra2dfSSf2hDrY1HOadbftp6Qgds09utodx5UHGl+cxpjRAQW42+Tlegn4vBTnZTKzIY2iBNSUZcyos6ZtBJRI11HRCWcwyhztD7G1uZ09zB7sOtLG9oZVtDYdZtesgz62pO65fAaAsz8d5IwqZNqKQwtzsI58lwNDCHKaNKKSyONdODMb0YUnfJF2e38uEIflMGJJ/3LZQuIfWrjCHO0O0doY40NrFpj0trN3dwrrdzbz1UQM9/XRLlQR9TBtRyIjiXDq6w5FXD54s4ZyKPCYPLWDy0HxGlwZp7wrT1N7FwbZuDneEKAn6GFGcS0GO104cJq1Y0jcpzevJojA360htHuCicaVH3neGwnSGetzVgEKPKjUH2/iwtpm1tU2sqW1mfV0zfq+HXJ+H3GwPHd3h4+5Z6E+e38vwohxysj2ogkbuLRxemMvF40u5eEIZE4fk2YnBnDUs6Zuzmt/rwe/1HLOuOOhjemURMLrf/TpDYbbVt7J5Xwu7GtvJy/FSlJtNcTCboM9LY2sXdU3t1B5sp66pna5wDwJHkvvGvS28vGEfAGV5fiYMCRIKK93hHrrCiqqSn+Mlz+8lP8f1SRTmZlOYm01RIJvCXB/Di3IYWRygKJBtJw1zxljSNxnJ7/UwZXgBU4YXnPIxag608e62Rv572352H2zH580i6Pfi87p5jg53hGg43Mn2/a0c6gjR3N5NOMbVRb7fS2VJgHy/F69H8HqyyM4SCgPZVBYHGFmcS2VxgMriXIYW5pBt8yiZ02BJ35hTNLIkwMiSADfMHnniwriRTK1dYZrbuznY2sXupnZqDrS518F22rpCdIV6aOsKE+rpYeOeFva07D6mI1sEhuT7GVaYS0nQR2tniNauEK2dYbpCPZTn+xlRlMvwIncXdWeoh4Otrq+iub2LoN/LsEK33XWwu+GzpUH/kZlZwz1K/aEO6praae0MM2loPkPy/XY1kiYs6RtzhogIeX7X5DOiKJfzRhSecJ+uUA97ml0zU+3BNuqaXDLe0+xulgv6vAzJzyFY5iXbIzQc6mTj3hZe27TvmFlXiwM+CnKzOdzZzd7mPXSHj73i6J2q25Ml7GvpOK6/oyzPz9ThruPbn+0hS0AQRNzd3G1dYdq6QrR2hens7qE7fPTlzcoiL8dLfo4bcluQm01JIJvioI+SoI+g30tHV5jWyDHau8KEVV0firpelPwcLyVBP6WRfSoKcmz68FNkSd+YFObzZjG6NMjo0uBJ7aeqtLSH8GdnkZN9bJ9HT4+yv7WTuqYO9jZ3UH+o947rTkLhHoYX5TK8yN0ol+P1sGlvC+vr3Gipd7btj3nCCPg8BH1eAj4P/mwPPo+Q7cnC6xG6wz3UHGjjUEeIlo5uDneGYg7DPdmfy7iyIBMr8pk4JI/SPN+Rk0SPuphc30k2Rbk+An4P3eEeOrt76Az10BlyJ6r2rqMnrMOdIQ51hDjcEeJQZzcd3T10hXroCruveX4vY8oCjCkNuleZe6DR2dbcZtMwGGNOWm9y7VHFmyUn1fQT7lGa27s50NrFwbYuDneGyM2OnDT8HnKyPZFjQlbkuC2R8o2tXTQe7mJnYytb6g+zpf4QNQfaE/Z9BXyeIx3wuT4PPk8W2Z4sfN4sWjpC7NjfSnN795Hy3ixhVEmAceVBhhfl0h4ZXny40zXVTR6azwWji5k1upgRRbkc6gyxcudBVnx8gJU7D9KjSkVBDkML3J3v48qDXDm54pRitwejG2MyQnuknyQry50kssRdXTS3d9PU1k1TWxdtXWF83iz83iw34is7i9xsDwGfh4DPJfigzxPXw4YOtnbxcWPrMbPUbm9oZW9LBwGfhzy/u3vckyVs3NNCW5ebhqQk6ONgWxeq7mQxdXgBOdke9rV0sLelg47uHi4YVcQz377klH4ONveOMSYj5PrcPRh9VRT0P2fU6SgO+igO+rhgVPEJy4bCPWzae4gPdh1k7e5mRhQFmD2mmBmjigj4jqbf3ua41q7QAEdLDEv6xhgzSLyeLM4bUXjCTnsRN0S3MJA9YLlEOLt6IIwxxpwWS/rGGJNBLOkbY0wGsaRvjDEZxJK+McZkEEv6xhiTQSzpG2NMBrGkb4wxGSTlpmEQkQZg52kcogzYn6BwBsvZECNYnIl0NsQIFmeinck4R6tq+YkKpVzSP10iUh3P/BPJdDbECBZnIp0NMYLFmWipGKc17xhjTAaxpG+MMRkkHZP+w8kOIA5nQ4xgcSbS2RAjWJyJlnJxpl2bvjHGmP6lY03fGGNMP9Im6YvIfBHZLCJbReSOZMfTS0QeFZF6EVkXta5ERF4RkS2Rryd+GsPgxjhSRJaJyEYRWS8if52iceaIyPsi8mEkzrsj68eKyHuROH8vIr5kxtlLRDwi8oGIPB9ZTrk4RWSHiKwVkdUiUh1Zl2q/9yIReUpENkX+RuemYIyTIj/D3leLiHw31eKENEn6IuIBHgAWAFOAm0RkSnKjOuJXwPw+6+4AXlPVicBrkeVkCgH/n6qeC1wEfCfy80u1ODuBK1X1fGAGMF9ELgL+GfjXSJwHgVuTGGO0vwY2Ri2napxXqOqMqKGFqfZ7/wnwoqpOBs7H/UxTKkZV3Rz5Gc4AZgFtwB9IsTgB95ius/0FzAVeilq+E7gz2XFFxTMGWBe1vBkYFnk/DNic7Bj7xPtfwFWpHCcQAFYBF+JufvHG+ltIYnyVuH/yK4HnAUnROHcAZX3WpczvHSgAPibS/5iKMcaI+Wrgv1M1zrSo6QMjgJqo5drIulRVoap7ACJfhyQ5niNEZAwwE3iPFIwz0mSyGqgHXgG2AU2q2vtw0VT53d8H/A+gJ7JcSmrGqcDLIrJSRBZH1qXS730c0AD8n0hT2SMiEkyxGPu6EXgs8j7l4kyXpC8x1tmwpJMkInnA08B3VbUl2fHEoqphdZfQlcAc4NxYxc5sVMcSkc8A9aq6Mnp1jKKp8Dd6iapegGsa/Y6IXJbsgPrwAhcAD6rqTKCVVGgi6Uekn2Yh8GSyY+lPuiT9WmBk1HIlUJekWOKxT0SGAUS+1ic5HkQkG5fwf6uqz0RWp1ycvVS1CXgD1wdRJCLeyKZU+N1fAiwUkR3A47gmnvtIvThR1brI13pcG/QcUuv3XgvUqup7keWncCeBVIox2gJglaruiyynXJzpkvRXABMjoyN8uMurZ5Mc00CeBW6JvL8F14aeNCIiwC+Bjar646hNqRZnuYgURd7nAvNwnXrLgOsjxZIep6reqaqVqjoG97f4uqp+hRSLU0SCIpLf+x7XFr2OFPq9q+peoEZEJkVWfQrYQArF2MdNHG3agVSMM9mdCgnsPLkW+AjXxvvDZMcTFddjwB6gG1druRXXvvsasCXytSTJMX4C19SwBlgdeV2bgnFOBz6IxLkOuCuyfhzwPrAVd1ntT/bvPSrmTwLPp2KckXg+jLzW9/7fpODvfQZQHfm9/ydQnGoxRuIMAI1AYdS6lIvT7sg1xpgMki7NO8YYY+JgSd8YYzKIJX1jjMkglvSNMSaDWNI3xpgMYknfGGMyiCV9Y4zJIJb0jTEmg/xfNsh97Xxkxz0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot\n",
    "from math import sqrt\n",
    "from numpy import concatenate\n",
    "pyplot.plot(history.history['loss'], label='train')\n",
    "pyplot.plot(history.history['val_loss'], label='test')\n",
    "pyplot.legend()\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [],
   "source": [
    "import itertools\n",
    "from sklearn.metrics import confusion_matrix, classification_report, matthews_corrcoef, cohen_kappa_score, accuracy_score, average_precision_score, roc_auc_score,auc,precision_recall_curve,roc_curve"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_confusion_matrix(cm, classes,\n",
    "                          normalize=False,\n",
    "                          title='Confusion matrix',\n",
    "                          cmap=plt.cm.Blues):\n",
    "\n",
    "    plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
    "    plt.title(title)\n",
    "    plt.colorbar()\n",
    "    tick_marks = np.arange(len(classes))\n",
    "    plt.xticks(tick_marks, classes, rotation=45)\n",
    "    plt.yticks(tick_marks, classes)\n",
    "\n",
    "    if normalize:\n",
    "        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
    "\n",
    "    thresh = cm.max() / 2.\n",
    "    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n",
    "        plt.text(j, i, cm[i, j],\n",
    "                 horizontalalignment=\"center\",\n",
    "                 color=\"white\" if cm[i, j] > thresh else \"black\")\n",
    "\n",
    "    plt.tight_layout()\n",
    "    plt.ylabel('True label')\n",
    "    plt.xlabel('Predicted label')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "def classification_eval(estimator, X_test, y_test):\n",
    "    y_pred = estimator.predict(X_test)\n",
    "    y_score = np.argmax(y_pred, axis=1)\n",
    "    dec = np.int64(np.ceil(np.log10(len(y_test))))\n",
    "    \n",
    "    def plot_precision_recall():\n",
    "        precision, recall, thresholds = precision_recall_curve(y_test, y_score)\n",
    "        plt.step(recall, precision, color = 'b', alpha = 0.2,where = 'post')\n",
    "        plt.fill_between(recall, precision, step ='post', alpha = 0.2,color = 'b')\n",
    "        plt.plot(recall, precision, linewidth=2)\n",
    "        plt.xlim([0.0,1])\n",
    "        plt.ylim([0.0,1.05])\n",
    "        plt.xlabel('Recall')\n",
    "        plt.ylabel('Precision')\n",
    "        plt.title('Precision Recall Curve')\n",
    "        plt.show();\n",
    "\n",
    "    print('CONFUSION MATRIX')\n",
    "    cfm=confusion_matrix(y_test, y_score)\n",
    "    plot_confusion_matrix(cfm, classes = range(2)) \n",
    "    fpr, tpr, t = roc_curve(y_test, y_score)\n",
    "    print('AUC=%0.2f'% auc(fpr,tpr))\n",
    "    plt.show()\n",
    "    print('CLASSIFICATION REPORT')\n",
    "    print(classification_report(y_test, y_score, digits=dec))\n",
    "    print('SCALAR METRICS')\n",
    "    format_str = '%%13s = %%.%if' % dec\n",
    "    print(format_str % ('Accuracy', accuracy_score(y_test, y_score)))\n",
    "    plot_precision_recall()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CONFUSION MATRIX\n",
      "AUC=0.90\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAVgAAAEmCAYAAAAnRIjxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XmcV2Xd//HXe2YAUURAlBBEUXGLbhUUyXIpTdE01KQoUyzuKFPvFrtLs6JcypY7yyVNbxewEpfyltwIUUv9AQLuuLG5ICggiCiLzPD5/XGuwa84853vwBy+s7yfPs7je851rnOd68zIZ67vda5zLkUEZmbW9CrKXQEzs9bKAdbMLCcOsGZmOXGANTPLiQOsmVlOHGDNzHLiANuGSOoo6R+Slku6dRPKOVnSP5uybuUi6WBJL5S7HtY6yeNgmx9JXwa+B+wJrACeAC6KiIc3sdxTgLOAgyKiepMr2sxJCqBfRMwud12sbXILtpmR9D3g98AvgB5AH+CPwNAmKH4n4MW2EFxLIamq3HWwVi4ivDSTBdgGeAcYViRPB7IAvCAtvwc6pH2HAfOBs4FFwELgq2nfz4H3gLXpHCOBnwF/Lih7ZyCAqrR9GjCXrBU9Dzi5IP3hguMOAqYBy9PnQQX7HgQuAB5J5fwT6F7PtdXW/wcF9T8eOAZ4EVgK/Kgg/yBgMvBWyns50D7t+3e6lnfT9X6xoPwfAq8DN9ampWN2TecYkLZ3AJYAh5X7/w0vLXNxC7Z5+TiwBXB7kTznAYOBfYF9yILMjwv2f4QsUPciC6JXSOoaEaPJWsU3R0SniLi2WEUkbQVcChwdEVuTBdEn6sjXDbgr5d0W+B1wl6RtC7J9GfgqsD3QHvh+kVN/hOxn0Av4KXAN8BVgIHAw8FNJu6S8NcB3ge5kP7vDgW8BRMQhKc8+6XpvLii/G1lrflThiSNiDlnw/YukLYHrgRsi4sEi9TWrlwNs87ItsCSKf4U/GTg/IhZFxGKylukpBfvXpv1rI+JustbbHhtZn3VAf0kdI2JhRMysI89ngVkRcWNEVEfETcDzwHEFea6PiBcjYhVwC9kfh/qsJetvXguMIwuef4iIFen8M4H/AIiIGRExJZ33JeBPwKElXNPoiFiT6vMBEXENMAuYCvQk+4NmtlEcYJuXN4HuDfQN7gC8XLD9ckpbX8YGAXol0KmxFYmId8m+Vn8TWCjpLkl7llCf2jr1Kth+vRH1eTMiatJ6bQB8o2D/qtrjJe0u6U5Jr0t6m6yF3r1I2QCLI2J1A3muAfoDl0XEmgbymtXLAbZ5mQysJut3rM8Csq+3tfqktI3xLrBlwfZHCndGxISI+AxZS+55ssDTUH1q6/TaRtapMa4kq1e/iOgM/AhQA8cUHTYjqRNZv/a1wM9SF4jZRnGAbUYiYjlZv+MVko6XtKWkdpKOlvTrlO0m4MeStpPUPeX/80ae8gngEEl9JG0DnFu7Q1IPSZ9LfbFryLoaauoo425gd0lfllQl6YvA3sCdG1mnxtgaeBt4J7WuT99g/xvALh86qrg/ADMi4j/J+pav2uRaWpvlANvMRMTvyMbA/hhYDLwKnAn8X8pyITAdeAp4GngspW3MuSYCN6eyZvDBoFhBNhphAdmd9UNJN5A2KONN4NiU902yEQDHRsSSjalTI32f7AbaCrLW9c0b7P8ZMEbSW5K+0FBhkoYCQ8i6RSD7PQyQdHKT1djaFD9oYGaWE7dgzcxy4gBrZpYTB1gzs5w4wJqZ5aRZvexCVR1D7bcudzWsiey7V59yV8GayCsvv8SSJUsaGmPcKJWdd4qo/tDDdPWKVYsnRMSQpqxD3ppXgG2/NR32aHA0jbUQj0y5rNxVsCbyicEHNHmZUb2qUf/eVz9xRUNP6TU7zSrAmllbIlDr7qV0gDWz8hCgJu11aHYcYM2sfNyCNTPLg6CistyVyJUDrJmVj7sIzMxyINxFYGaWD7kFa2aWG7dgzcxy4hasmVke/KCBmVk+/KCBmVmO3II1M8uDoNIPGpiZNT2PgzUzy5H7YM3M8uBRBGZm+XEL1swsJ27BmpnlQH4XgZlZftyCNTPLSStvwbbuPx9m1oylUQSlLg2VJn1X0kxJz0i6SdIWkvpKmipplqSbJbVPeTuk7dlp/84F5Zyb0l+QdFRB+pCUNlvSOaVcoQOsmZWHyKaMKXUpVpTUC/gvYP+I6A9UAsOBXwGXREQ/YBkwMh0yElgWEbsBl6R8SNo7HfdRYAjwR0mVkiqBK4Cjgb2BL6W8RTnAmlmZNG0LlqzLs6OkKmBLYCHwaeC2tH8McHxaH5q2SfsPl6SUPi4i1kTEPGA2MCgtsyNibkS8B4xLeYtygDWz8qkdSVDKAt0lTS9YRtUWExGvAb8FXiELrMuBGcBbEVGdss0HeqX1XsCr6djqlH/bwvQNjqkvvSjf5DKz8mncKIIlEbF/ncVIXclalH2Bt4Bbyb7ObyhqD6lnX33pdVU06kj7AAdYMyufphtFcAQwLyIWZ8Xq78BBQBdJVamV2htYkPLPB3YE5qcuhW2ApQXptQqPqS+9Xu4iMLPyUJP2wb4CDJa0ZepLPRx4FngAOCnlGQHckdbHp23S/vsjIlL68DTKoC/QD3gUmAb0S6MS2pPdCBvfUKXcgjWz8mmiFmxETJV0G/AYUA08DlwN3AWMk3RhSrs2HXItcKOk2WQt1+GpnJmSbiELztXAGRFRk1VVZwITyEYoXBcRMxuqlwOsmZWNmvBBg4gYDYzeIHku2QiADfOuBobVU85FwEV1pN8N3N2YOjnAmllZZFNyte4nuRxgzaw8JFThAGtmlgu3YM3McuIAa2aWEwdYM7M8iLqfm2pFHGDNrCyE3II1M8uLA6yZWU4cYM3McuIAa2aWB9/kMjPLhxAVFa37hX4OsGZWNu4iMDPLS+uOrw6wZlYmcgvWzCw3DrBmZjlxgDUzy4EflTUzy1Prjq+eVXZjnXXyp5hx23lMv/VHjPnlaXRoX8WhB+zO//vrD5l+64+45vxTqKzMfry779yDB8eczVtTL+E7pxz+gXKuGn0yL0/6JdNv/dEH0s/7xjHMmXAhU8adw5Rx53DUJ/febNdmcNkfLmHgPv3Zf9+PMeIrX2b16tXr933vO2exXdet12+vWbOGU748nP579eOQTwzm5ZdeAuDll16iW+ctOXD//Thw//0464xvbu7LaN7STa5Sl5bIAXYj7LDdNnzrS4fyiZN/zf7DfkFlRQVfPHp//vf8Uzj1nOvZf9gveGXhUr5y3IEALFv+Lmf/6lZ+P/b+D5V14z+mMPSMK+o8z2V/foDBwy9m8PCLmfDws7lek73vtdde449XXMbDU6Yx/Ymnqamp4dZbxgEwY8Z0lr+1/AP5b7j+Wrp07cIzz83irP/6Dj/+0Tnr9+2yy65Mnf44U6c/zmVXXLVZr6MlaKoAK2kPSU8ULG9L+o6kbpImSpqVPrum/JJ0qaTZkp6SNKCgrBEp/yxJIwrSB0p6Oh1zqUqI+g6wG6mqspKOHdpRWVlBxy3as3LVe6x5r5rZrywC4P4pz3P84fsCsHjZO8x49hXWVtd8qJxHHpvD0uUrN2vdrWHV1dWsWrWK6upqVq5aSc+eO1BTU8N55/yAC3/5qw/kvesf4/nKKdm/wxM+fxIPPjCJiChHtVscVajkpZiIeCEi9o2IfYGBwErgduAcYFJE9AMmpW2Ao4F+aRkFXAkgqRvZzLQHks1GO7o2KKc8owqOG9LQ9TnAboQFi5fz+7GTePGeC5g38SLefmcVt/3zMdq1q2TA3n0AOOGIfendo2sDJRX3zeGH8OjN53LV6JPpsnXHpqi6laBXr15857tns8euO7FLnx3YpvM2HPGZI7nqj5fz2WOPo2fPnh/Iv+C11+jVe0cAqqqq6LzNNrz55psAvPTSPAYfMIAjDz+MRx5+aLNfS3OXUxfB4cCciHgZGAqMSeljgOPT+lBgbGSmAF0k9QSOAiZGxNKIWAZMBIakfZ0jYnJkfz3HFpRVr1wDrKQhkl5ITepzGj6iZeiydUeOPexj7HXsaHY58jy26tie4cccwKnnXM+vzz6Rh278PiveXUN1zYdbrKW65taH2Pu4n3Hg8It5fcnbXPy9E5vwCqyYZcuWcec/xvPsi3OZ8/JrvPvuu/zlxrH8/W+3cfoZZ30of12tVUl8pGdPXpjzMlOmPcbFv/kfTjv1ZN5+++3NcQktQmOCawqw3SVNL1hG1VP0cOCmtN4jIhYCpM/tU3ov4NWCY+antGLp8+tILyq3UQSSKoErgM+kykyTND4iWnxn4qcP3JOXFrzJkmXvAPB/9z/J4H36Mu7uaRwx8vcAHD54T/rttH2xYopatHTF+vXr/v4If7/UN0g2lwcm3cdOO+/MdtttB8DQ40/gwgt+xqpVq+i/Vz8AVq5cSf+9+vHMc7Po1bs3r81/ld69e1NdXc3by5fTrVs3JNGhQwcABgwYyC677MqsWS8ycOD+Zbu25qaRLdMlEVH0hyepPfA54NyGTl1HWmxEelF5tmAHAbMjYm5EvAeMI2uWt3ivvr6UQR/rS8ct2gHwqUF78MK8N9iuaycA2rer4uzTPsM1tz280ef4SPfO69eHfnofnp2zcNMqbSXr3acP06ZOZeXKlUQEDz5wP//17e/y0qsLeX7WPJ6fNY8tt9ySZ56bBcAxxx7Hn2/MvoXe/rfbOPSwTyOJxYsXU5O+xcybO5fZs2fRt+8uZbuu5iiHLoKjgcci4o20/Ub6ek/6XJTS5wM7FhzXG1jQQHrvOtKLynMcbF1N7QM3zJSa+VlTv12nHKvTdKY98zK33/c4k//6Q6pr1vHk8/O59m+P8LMzjuXog/tTUSGuufUh/jXtRQB6bLs1j/zlB2y91Rasi+DMkw9jv89fxIp3VzPml6dx8MB+dO/Sidn3XsAFV93NmP+bzEXfPp7/2KM3EcHLC5dy1oU3NVArayqDBh3I8Sd+noMGDaSqqop99t2Pr/1nfd9G4bSvjmTkaafSf69+dO3ajbF/zn5Xjzz0by74+WiqqqqoqKzk0suvpFu3bpvrMlqGph999SXe7x4AGA+MAC5On3cUpJ8paRxZXFoeEQslTQB+UXBj60jg3IhYKmmFpMHAVOBU4LKGKqO87nZKGgYcFRH/mbZPAQZFxIc7sZKKLbePDnt8IZf62Oa39NEG//+zFuITgw/gsRnTmzQcdujRL3qd/IeS88+75LMzinURSNqSrFG3S0QsT2nbArcAfYBXgGEpWAq4nGwkwErgqxExPR3zNaB2YPpFEXF9St8fuAHoCNwDnBUNBNA8W7D1NbXNzJr8bVoRsRLYdoO0N8lGFWyYN4Az6innOuC6OtKnA/0bU6c8+2CnAf0k9U0dz8PJmuVmZtmMMSp9aYlya8FGRLWkM4EJQCVwXUTMzOt8ZtbSiIoGHiBo6XJ92UtE3A3cnec5zKzlaqnvGCiV36ZlZuXRgr/6l8oB1szKQuAuAjOzvLgFa2aWE/fBmpnlwX2wZmb5yMbBtu4I6wBrZmXScqeCKZUDrJmVTSuPrw6wZlYm8jAtM7NcuA/WzCxHrTy+OsCaWfm4BWtmlpNWHl8dYM2sTJr4hdvNkQOsmZVF7Qu3WzMHWDMrk9b/oEGeU8aYmRXVlFPGSOoi6TZJz0t6TtLHJXWTNFHSrPTZNeWVpEslzZb0lKQBBeWMSPlnSRpRkD5Q0tPpmEtVwl8HB1gzK4/0oEGpSwn+ANwbEXsC+wDPAecAkyKiHzApbQMcDfRLyyjgSgBJ3YDRZFN5DwJGF0zhfWXKW3vckIYq5ABrZmVR+6BBqUvRsqTOwCHAtQAR8V5EvAUMBcakbGOA49P6UGBsZKYAXST1BI4CJkbE0ohYBkwEhqR9nSNicpqRdmxBWfVygDWzsmlkgO0uaXrBMqqgqF2AxcD1kh6X9L+StgJ6RMRCgPS5fcrfC3i14Pj5Ka1Y+vw60ovyTS4zK5tG3uNaEhH717OvChgAnBURUyX9gfe7A+o8dR1psRHpRbkFa2Zl01RdBGQtyvkRMTVt30YWcN9IX+9Jn4sK8u9YcHxvYEED6b3rSC/KAdbMyqMRIwgaiq8R8TrwqqQ9UtLhwLPAeKB2JMAI4I60Ph44NY0mGAwsT10IE4AjJXVNN7eOBCakfSskDU6jB04tKKte7iIws7JQ04+DPQv4i6T2wFzgq2SNyFskjQReAYalvHcDxwCzgZUpLxGxVNIFwLSU7/yIWJrWTwduADoC96SlKAdYMyubpoyvEfEEUFcf7eF15A3gjHrKuQ64ro706UD/xtTJAdbMyqailT/J5QBrZmXTyuOrA6yZlYcElZ4yxswsH639ZS/1Btj06Fm9IuLtpq+OmbUlrTy+Fm3BzuTDTzDUbgfQJ8d6mVkrJ7KhWq1ZvQE2Inasb5+ZWVNo5V2wpT3JJWm4pB+l9d6SBuZbLTNr9RrxmGxL7attMMBKuhz4FHBKSloJXJVnpcysbWjKF243R6WMIjgoIgZIehzWP0rWPud6mVkrJ/ygAcBaSRWkV3NJ2hZYl2utzKxNaOXxtaQ+2CuAvwHbSfo58DDwq1xrZWZtQmvvg22wBRsRYyXNAI5IScMi4pl8q2VmrZ2f5HpfJbCWrJvA75A1sybRusNraaMIzgNuAnYge4v3XyWdm3fFzKz1a/NdBMBXgIERsRJA0kXADOCXeVbMzFq3bBRBuWuRr1IC7Msb5Ksie1u4mdnGa8Et01IVe9nLJWR9riuBmZImpO0jyUYSmJltklYeX4u2YGtHCswE7ipIn5JfdcysLWmzLdiIuHZzVsTM2pa20AdbyiiCXSWNk/SUpBdrl81ROTNr3ZpyFIGklyQ9LekJSdNTWjdJEyXNSp9dU7okXSppdoptAwrKGZHyz5I0oiB9YCp/djq2wUqVMqb1BuB6sj84RwO3AONKOM7MrF4SVEolLyX6VETsGxG1s8ueA0yKiH7ApLQNWSzrl5ZRwJVZndQNGA0cCAwCRtcG5ZRnVMFxQxqqTCkBdsuImAAQEXMi4sdkb9cyM9skm+FtWkOBMWl9DHB8QfrYyEwBukjqCRwFTIyIpRGxDJgIDEn7OkfE5DTl99iCsupVyjCtNakpPEfSN4HXgO0bcYFmZnVq5E2u7rVf/ZOrI+Lqgu0A/ikpgD+lfT0iYiFARCyUVBu7egGvFhw7P6UVS59fR3pRpQTY7wKdgP8CLgK2Ab5WwnFmZkU1smW6pOCrf10+ERELUhCdKOn5YqeuI23DKbJKSS+qlJe9TE2rK3j/pdtmZptEqEnfBxsRC9LnIkm3k/WhviGpZ2q99gQWpezzgcJpsXoDC1L6YRukP5jSe9eRv6hiDxrcTpEIHREnNlS4mVm9mnCmAklbARURsSKtHwmcD4wHRgAXp8870iHjgTMljSO7obU8BeEJwC8KbmwdCZybJhpYIWkwMBU4FbisoXoVa8Fe3uir3ET77dWHR6Zu9tNaTg759YPlroI1kRdeX5FLuU34oEEP4PZUXhXw14i4V9I04BZJI4FXgGEp/93AMcBssqdVvwrrZ2y5AJiW8p0fEUvT+ulko6o6AvekpahiDxpMaszVmZk1VlO9+zQi5gL71JH+JnB4HekBnFFPWdcB19WRPh3o35h6lfo+WDOzJiXa8KOyZmZ5a+2PypYcYCV1iIg1eVbGzNqOtjBlTCnvIhgk6WlgVtreR1KDd8/MzBpSodKXlqiUPuZLgWOBNwEi4kn8qKyZNYHN8KhsWZXSRVARES9v0Bldk1N9zKyNyF5X2EIjZ4lKCbCvShoEhKRK4CzArys0s03W2qeoLiXAnk7WTdAHeAO4L6WZmW2SVt6ALeldBIuA4ZuhLmbWhkhN+y6C5qjBACvpGup4J0FEjMqlRmbWZrTy+FpSF8F9BetbACfwwfclmpltlJY6/KpUpXQR3Fy4LelGsrd8m5ltNNH6HzTYmEdl+wI7NXVFzKyNacEPEJSqlD7YZbzfB1sBLOX9icPMzDaa6pwooPUoGmDTXFz7kM3DBbAuvebLzGyTZA8alLsW+So6zjcF09sjoiYtDq5m1mT8LgJ4VNKA3GtiZm2OpJKXlqjYnFxVEVENfBL4uqQ5wLtkLfuICAddM9tobaGLoFgf7KPAAOD4zVQXM2tLWvBbskpVrItAABExp65lM9XPzFqxivS4bClLKSRVSnpc0p1pu6+kqZJmSbpZUvuU3iFtz077dy4o49yU/oKkowrSh6S02ZJKGklVrAW7naTv1bczIn5XygnMzOqSUxfBt4HngM5p+1fAJRExTtJVwEjgyvS5LCJ2kzQ85fuipL3J3r3yUWAH4D5Ju6eyrgA+A8wHpkkaHxHPFqtMsRZsJdAJ2LqexcxsE4hKlb40WJrUG/gs8L9pW8CngdtSljG83+U5NG2T9h+e8g8FxkXEmoiYRzat96C0zI6IuRHxHjAu5S2qWAt2YUSc3+BVmZlthGxW2SYt8vfAD3i/Abgt8Fa6WQ9Zy7NXWu9FeqdKRFRLWp7y9wKmFJRZeMyrG6Qf2FCFGuyDNTPLRSPGwKauhO6Sphcs69/oJ+lYYFFEzPjgGT4kGtjX2PSiirVgD2/oYDOzTdHI98EuiYj969n3CeBzko4he+tfZ7IWbZeCIae9gQUp/3xgR2C+pCpgG7LXANSm1yo8pr70etXbgo2IpQ0dbGa2sWq7CJpi0sOIODciekfEzmQ3qe6PiJOBB4CTUrYRwB1pfXzaJu2/Pz2pOh4YnkYZ9AX6kQ1ZnQb0S6MS2qdzjG/oGjfmbVpmZk1iM8xo8ENgnKQLgceBa1P6tcCNkmaTtVyHA0TETEm3AM8C1cAZEVEDIOlMYALZAIDrImJmQyd3gDWzsskjvkbEg8CDaX0u2QiADfOsBobVc/xFwEV1pN8N3N2YujjAmllZCM8qa2aWD9FiX+JSKgdYMyub1h1eHWDNrEwEJT2h1ZI5wJpZ2bTy+OoAa2bl0nJfpF0qB1gzKwuPIjAzy5FbsGZmOWnd4dUB1szKxeNgzczy4T5YM7McuQVrZpaTtjxtt5lZbrIugtYdYR1gzaxsWnkPgQOsmZWLkFuwZmb5cAvWzCwH7oM1M8tLCZMZtnQOsGZWNq09wLb2BynMrBlTI/4rWo60haRHJT0paaakn6f0vpKmSpol6eY05TZpWu6bJc1O+3cuKOvclP6CpKMK0oektNmSzinl+tyCbQIvvvACp3z5i+u3582by09Gn88hhx7GWWd8kzWrV1NVVcXvL/sjBwwaxL//9SDDThzKzjv3BWDoCSfyox//lNWrV3PEpw7hvTVrqK6p5oQTT+Ino39erstqUzp1qOK8z+7BrtttRURw4V0vcNge3Tm4X3fW1qzjtWWrOP/OF3hnTfX6Y3p07sDNowZxzUMv8Zepr9K+soI/nbIv7SsrqKwQk55fzDUPvQTAT4/dkwF9tuGdNTUA/PwfzzNr0TvluNRmQzTpgwZrgE9HxDuS2gEPS7oH+B5wSUSMk3QVMBK4Mn0ui4jdJA0HfgV8UdLeZFN4fxTYAbhP0u7pHFcAnwHmA9MkjY+IZ4tVygG2Cey+xx5MnfEEADU1Ney6Uy8+d/wJnPHNr3PeT0Zz1JCjufeeuznv3B/wz0kPAvCJTx7M3++48wPldOjQgXsn3k+nTp1Yu3Ytnz70kxx51NEcOHjw5r6kNufsz+zGlDlLOffvM6mqEFu0q2TL9sv44wPzqIngzE/twmkH9eHyB+auP+a7R+zG5Dlvrt9+r2Yd3/rLk6xaW0NlhbjmlP2YPGcpzyx4G4BL75/L/c8v3uzX1pxVNFEfQUQEUPsXq11aAvg08OWUPgb4GVmAHZrWAW4DLlf23O5QYFxErAHmSZrN+9N+z07TgCNpXMpbNMC6i6CJPXD/JPrusis77bQTknj77ewf1/Lly+m5ww5Fj5VEp06dAFi7di3Va9e2+me1m4Ot2leyX59tuOPJhQBUrwveWVPN1HnLqIkA4JnX3mb7rTusP+bQ3bvz2lurmLtk5QfKWrU2a6FWVYiqShHEZrqKlqmRXQTdJU0vWEZ9oCypUtITwCJgIjAHeCsiar92zAd6pfVewKsAaf9yYNvC9A2OqS+9KLdgm9itN4/jC1/8EgC/+Z/fc9xnj+LcH36fdevW8cC//9/6fFOnTGbQgH3oucMO/PJXv2Xvj34UyFrABw0ayJw5s/nG6Wcw6MADy3IdbckOXTqybOVafnrsnvTbfiuef/0d/mfiLFavXbc+z3H7fISJz2atzy3aVXDq4B0586an+MrgHT9QVoVg7Nf2p3fXjtw24zVmLlixft/ph/Zl5Cd3YvpLy7j8gbmsrWnbwXcjugiWRMT+9e2MiBpgX0ldgNuBverKVnD6uvbVl15XY7TBX2BuLVhJ10laJOmZvM7R3Lz33nvcded4TjxpGABX/+lKfv3bS5g971V+/dtLOH3USAD23W8AL8x5mUcfe5LTzziLL5x0/PoyKisrmTrjCWa/NJ/p0x5l5jNt5sdXNlUVYo+PbM3fHnuNU66bwaq1NYz4eJ/1+796UB9q1gX3znwDgFEH9+WmafPXt1YLrQv4yrXTOfayyey9w9bsst1WAFzxwFyG/elRTrt+Bp23aMepBeW3XY1pv5YeiSPiLeBBYDDQRVJtQ7I3sCCtzwd2BEj7twGWFqZvcEx96UXl2UVwAzAkx/KbnQn33sO++w2gR48eAPzlxjEcf8KJAHz+pGFMn/YoAJ07d17fFTDk6GNYu3YtS5Ys+UBZXbp04ZBDD+Of/7x3M15B27RoxRoWvb1mfWvz/ucXs8dHtgbgsx/rwSd325af3PHc+vz9e23NmZ/alf/71mCGH9Cb0w7qw7CBH/y2+M6aah57+S0+vks3AN589z0A1tYE/3jqdT7as/PmuLTmLY2DLXUpWpS0XWq5IqkjcATwHPAAcFLKNgK4I62PT9uk/fenftzxwPA0yqAv0A94FJgG9EujEtqT3Qgb39Al5tZFEBH/Lhz60BbccvNN67sHAHrusAMP/ftfHHLoYTz4wP3stls/AF5//XV69OiBJKY9+ijr1q1j2223ZfHixbRr144uXbojtrorAAALuElEQVSwatUq7p90H2f/9w/LdTltxpvvvseiFavp060jryxdxQE7d2XekncZvEs3Tvl4H7755ydYU/1+d8GoG59Yv/71g3dm5Xs13DrjNbps2Y7qmqz/tkNVBYP6dmXs5Kzbbtut2q8Psofu3p05i9/dvBfZTDXhHYaewBhJlWQNx1si4k5JzwLjJF0IPA5cm/JfC9yYbmItJQuYRMRMSbeQ3byqBs5IXQ9IOhOYAFQC10XEzIYqVfY+2NRRPQpgxz4t92vTypUruf++iVz+xz+tT7viymv47+99m+rqajpssQWXX3k1ALf/7TauufpKqiqr2KJjR8b+eRySeH3hQr7+tRHU1NSwLtbx+ZO+wDGfPbZcl9Sm/GbCbC4YujdVlWLBstWcf9fz3HDaQNpXicu/tA+Q3ei6+N4X6y2j+1btGX3cnlRUiAqJ+55bxMOzs1EGFwzdiy5btkMSL77xDhffU385bUXWB9tkowieAvarI30u748CKExfDQyrp6yLgIvqSL8buLsx9VJEfh3tqQV7Z0T0LyX/wIH7xyNTp+dWH9u8Dvn1g+WugjWRmVd8g3dfe6FJh7Ts9bH94vrbHyg5/8f7dZ1R7CZXc1T2FqyZtWGtfBSiA6yZlU1TdRE0V3kO07oJmAzsIWm+pJF5ncvMWiY1YmmJ8hxF8KWGc5lZm9ZSI2eJ3EVgZmWRtUxbd4R1gDWz8vALt83M8tPK46sDrJmVUSuPsA6wZlYmnrbbzCw37oM1M8tBSx7fWioHWDMrm9Y+Y4cDrJmVTSuPrw6wZlY+rTy+OsCaWZm0gU5YB1gzKxsP0zIzy4FwH6yZWW5aeXzNdVZZM7PimuiFsJJ2lPSApOckzZT07ZTeTdJESbPSZ9eULkmXSpot6SlJAwrKGpHyz5I0oiB9oKSn0zGXqoQxZg6wZlY2asR/DagGzo6IvYDBwBmS9gbOASZFRD9gUtoGOJpsSu5+ZJOuXglZQAZGAweSTZY4ujYopzyjCo4b0lClHGDNrGwqVPpSTEQsjIjH0voK4DmgFzAUGJOyjQGOT+tDgbGRmQJ0kdQTOAqYGBFLI2IZMBEYkvZ1jojJkc0UO7agrHq5D9bMyieHTtg0m/V+wFSgR0QshCwIS9o+ZesFvFpw2PyUVix9fh3pRTnAmllZbMSMBt0lTS/Yvjoirv5AmVIn4G/AdyLi7SLdpHXtiI1IL8oB1szKo/EzGiyJiP3rLU5qRxZc/xIRf0/Jb0jqmVqvPYFFKX0+sGPB4b2BBSn9sA3SH0zpvevIX5T7YM2sbJpqVtl0R/9a4LmI+F3BrvFA7UiAEcAdBemnptEEg4HlqSthAnCkpK7p5taRwIS0b4WkwelcpxaUVS+3YM2sfJquD/YTwCnA05KeSGk/Ai4GbpE0EngFGJb23Q0cA8wGVgJfBYiIpZIuAKalfOdHxNK0fjpwA9ARuCctRTnAmlmZNN2MBhHxMPWH68PryB/AGfWUdR1wXR3p04H+jamXA6yZlY0flTUzy0EbeJmWA6yZlVErj7AOsGZWNhWtvI/AAdbMyqZ1h1cHWDMrl8Y/aNDiOMCaWRm17gjrAGtmZeEZDczMctTK46sDrJmVj1uwZmY58ayyZmZ5ad3x1QHWzMqnlcdXB1gzKw/JT3KZmeWndcdXB1gzK59WHl8dYM2sfFp5D4EDrJmVS9PNaNBcOcCaWVm0hUdlPausmVlOHGDNrGyk0peGy9J1khZJeqYgrZukiZJmpc+uKV2SLpU0W9JTkgYUHDMi5Z8laURB+kBJT6djLk3TdxflAGtmZaNG/FeCG4AhG6SdA0yKiH7ApLQNcDTQLy2jgCshC8jAaOBAYBAwujYopzyjCo7b8Fwf4gBrZmWRPWhQ+tKQiPg3sHSD5KHAmLQ+Bji+IH1sZKYAXST1BI4CJkbE0ohYBkwEhqR9nSNicprye2xBWfXyTS4zK5/G3eTqLml6wfbVEXF1A8f0iIiFABGxUNL2Kb0X8GpBvvkprVj6/DrSi3KANbOyaeQwrSURsX+TnfrDYiPSi3IXgZmVTVPe5KrHG+nrPelzUUqfD+xYkK83sKCB9N51pBflAGtmZaNGLBtpPFA7EmAEcEdB+qlpNMFgYHnqSpgAHCmpa7q5dSQwIe1bIWlwGj1wakFZ9XIXgZmVTxM+aCDpJuAwsr7a+WSjAS4GbpE0EngFGJay3w0cA8wGVgJfBYiIpZIuAKalfOdHRO2Ns9PJRip0BO5JS1EOsGZWNk35qGxEfKmeXYfXkTeAM+op5zrgujrSpwP9G1MnZedpHiQtBl4udz02g+7AknJXwppEW/ld7hQR2zVlgZLuJfv5lWpJRDQ49rQ5aVYBtq2QNL0J74ZaGfl3acX4JpeZWU4cYM3McuIAWx4NPX1iLYd/l1Yv98GameXELVgzs5w4wJqZ5cQB1swsJw6wm4GkPSR9XFI7SZXlro9tOv8erRS+yZUzSScCvwBeS8t04IaIeLusFbONImn3iHgxrVdGRE2562TNl1uwOZLUDvgiMDIiDid7+86OwA8kdS5r5azRJB0LPCHprwARUeOWrBXjAJu/zmTz9wDcDtwJtAe+XMqkadY8SNoKOBP4DvCepD+Dg6wV5wCbo4hYC/wOOFHSwRGxDngYeAL4ZFkrZ40SEe8CXwP+Cnwf2KIwyJazbtZ8OcDm7yHgn8Apkg6JiJqI+CuwA7BPeatmjRERCyLinYhYAnwD6FgbZCUNkLRneWtozY3fB5uziFgt6S9k8/ecm/4RrgF6AAvLWjnbaBHxpqRvAL+R9DxQCXyqzNWyZsYBdjOIiGWSrgGeJWv5rAa+EhFvlLdmtikiYomkp4Cjgc9ExPyGjrG2xcO0NrN0QyRSf6y1YGnOpluAsyPiqXLXx5ofB1izTSBpi4hYXe56WPPkAGtmlhOPIjAzy4kDrJlZThxgzcxy4gBrZpYTB9hWQlKNpCckPSPpVklbbkJZh0m6M61/TtI5RfJ2kfStjTjHzyR9v9T0DfLcIOmkRpxrZ0nPNLaOZpvKAbb1WBUR+0ZEf+A94JuFO5Vp9O87IsZHxMVFsnQBGh1gzdoCB9jW6SFgt9Rye07SH4HHgB0lHSlpsqTHUku3E4CkIZKel/QwcGJtQZJOk3R5Wu8h6XZJT6blIOBiYNfUev5NyvffkqZJekrSzwvKOk/SC5LuA/Zo6CIkfT2V86Skv23QKj9C0kOSXkyvEURSpaTfFJz7G5v6gzTbFA6wrYykKrJHN59OSXsAYyNiP+Bd4MfAERExgOzl39+TtAVwDXAccDDwkXqKvxT4V0TsAwwAZgLnAHNS6/m/JR1J9nrGQcC+wEBJh0gaCAwH9iML4AeUcDl/j4gD0vmeA0YW7NsZOBT4LHBVuoaRwPKIOCCV/3VJfUs4j1ku/C6C1qOjpCfS+kPAtWRv7Ho5Iqak9MHA3sAj6VW07YHJwJ7AvIiYBZDeEDWqjnN8GjgV1r+ib3l6XLTQkWl5PG13Igu4WwO3R8TKdI7xJVxTf0kXknVDdAImFOy7JT1uPEvS3HQNRwL/UdA/u00694slnMusyTnAth6rImLfwoQURN8tTAImRsSXNsi3L9nbvpqCgF9GxJ82OMd3NuIcNwDHR8STkk4DDivYt2FZkc59VkQUBmIk7dzI85o1CXcRtC1TgE9I2g1A0paSdgeeB/pK2jXl+1I9x08CTk/HVqZpb1aQtU5rTQC+VtC320vS9sC/gRMkdZS0NVl3REO2BhamqXdO3mDfMEkVqc67AC+kc5+e8iNp9zQTgVlZuAXbhkTE4tQSvElSh5T844h4UdIo4C5JS8hmXehfRxHfBq6WNBKoAU6PiMmSHknDoO5J/bB7AZNTC/odslczPibpZrLZHF4m68ZoyE+AqSn/03wwkL8A/IvsvbrfTO/d/V+yvtnHlJ18MXB8aT8ds6bnl72YmeXEXQRmZjlxgDUzy4kDrJlZThxgzcxy4gBrZpYTB1gzs5w4wJqZ5eT/A8lmfGSVtRJ7AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CLASSIFICATION REPORT\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "         0.0   0.919015  0.913813  0.916406     97520\n",
      "         1.0   0.881352  0.888274  0.884800     70288\n",
      "\n",
      "   micro avg   0.903115  0.903115  0.903115    167808\n",
      "   macro avg   0.900183  0.901043  0.900603    167808\n",
      "weighted avg   0.903239  0.903115  0.903167    167808\n",
      "\n",
      "SCALAR METRICS\n",
      "     Accuracy = 0.903115\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "classification_eval(model, X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_confusion_matrix(cm, classes,\n",
    "                          normalize=False,\n",
    "                          title='Confusion matrix',\n",
    "                          cmap=plt.cm.Blues):\n",
    "\n",
    "    plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
    "    plt.title(title)\n",
    "    plt.colorbar()\n",
    "    tick_marks = np.arange(len(classes))\n",
    "    plt.xticks(tick_marks, classes, rotation=45)\n",
    "    plt.yticks(tick_marks, classes)\n",
    "\n",
    "    if normalize:\n",
    "        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
    "\n",
    "    thresh = cm.max() / 2.\n",
    "    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n",
    "        plt.text(j, i, cm[i, j],\n",
    "                 horizontalalignment=\"center\",\n",
    "                 color=\"white\" if cm[i, j] > thresh else \"black\")\n",
    "\n",
    "    plt.tight_layout()\n",
    "    plt.ylabel('True label')\n",
    "    plt.xlabel('Predicted label')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "def classification_eval(estimator, X_test, y_test):\n",
    "    y_pred = estimator.predict(X_test)\n",
    "    y_score = estimator.decision_function(X_test) \n",
    "    dec = np.int64(np.ceil(np.log10(len(y_test))))\n",
    "    \n",
    "    def plot_roc():\n",
    "        fpr, tpr, t = roc_curve(y_test, y_score)\n",
    "        plt.plot(fpr, tpr, label = 'ROC curve', linewidth = 2)\n",
    "        plt.plot([0,1],[0,1], 'k--', linewidth = 2)\n",
    "        plt.xlim([0.0,0.001])\n",
    "        plt.ylim([0.0,1.05])\n",
    "        plt.xlabel('False Positive Rate')\n",
    "        plt.ylabel('True Positive Rate')\n",
    "        plt.title('ROC Curve (AUC=%0.2f)'% auc(fpr,tpr))\n",
    "        plt.show();\n",
    "    \n",
    "    def plot_precision_recall():\n",
    "        precision, recall, thresholds = precision_recall_curve(y_test, y_score)\n",
    "        plt.step(recall, precision, color = 'b', alpha = 0.2,where = 'post')\n",
    "        plt.fill_between(recall, precision, step ='post', alpha = 0.2,color = 'b')\n",
    "        plt.plot(recall, precision, linewidth=2)\n",
    "        plt.xlim([0.0,1])\n",
    "        plt.ylim([0.0,1.05])\n",
    "        plt.xlabel('Recall')\n",
    "        plt.ylabel('Precision')\n",
    "        plt.title('Precision Recall Curve')\n",
    "        plt.show();\n",
    "\n",
    "    print('CONFUSION MATRIX')\n",
    "    cfm=confusion_matrix(y_test, y_pred)\n",
    "    plot_confusion_matrix(cfm, classes = range(2)) \n",
    "    plt.show()\n",
    "    print('CLASSIFICATION REPORT')\n",
    "    print(classification_report(y_test, y_pred, digits=dec))\n",
    "    print('SCALAR METRICS')\n",
    "    format_str = '%%13s = %%.%if' % dec\n",
    "    print(format_str % ('MCC', matthews_corrcoef(y_test, y_pred)))\n",
    "    print(format_str % (\"Cohen's kappa\", cohen_kappa_score(y_test, y_pred)))\n",
    "    print(format_str % ('Accuracy', accuracy_score(y_test, y_pred)))\n",
    "    plot_roc()\n",
    "    plot_precision_recall()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "def classification_eval1(estimator, X_test, y_test):\n",
    "    y_pred = estimator.predict(X_test)\n",
    "    y_score = estimator.predict_proba(X_test)[:,1]\n",
    "    dec = np.int64(np.ceil(np.log10(len(y_test))))\n",
    "    \n",
    "    def plot_roc():\n",
    "        fpr, tpr, t = roc_curve(y_test, y_score)\n",
    "        plt.plot(fpr, tpr, label = 'ROC curve', linewidth = 2)\n",
    "        plt.plot([0,1],[0,1], 'k--', linewidth = 2)\n",
    "        plt.xlim([0.0,0.001])\n",
    "        plt.ylim([0.0,1.05])\n",
    "        plt.xlabel('False Positive Rate')\n",
    "        plt.ylabel('True Positive Rate')\n",
    "        plt.title('ROC Curve (AUC=%0.2f)'% auc(fpr,tpr))\n",
    "        plt.show();\n",
    "    \n",
    "    def plot_precision_recall():\n",
    "        precision, recall, thresholds = precision_recall_curve(y_test, y_score)\n",
    "        plt.step(recall, precision, color = 'b', alpha = 0.2,where = 'post')\n",
    "        plt.fill_between(recall, precision, step ='post', alpha = 0.2,color = 'b')\n",
    "        plt.plot(recall, precision, linewidth=2)\n",
    "        plt.xlim([0.0,1])\n",
    "        plt.ylim([0.0,1.05])\n",
    "        plt.xlabel('Recall')\n",
    "        plt.ylabel('Precision')\n",
    "        plt.title('Precision Recall Curve')\n",
    "        plt.show();\n",
    "\n",
    "    print('CONFUSION MATRIX')\n",
    "    cfm=confusion_matrix(y_test, y_pred)\n",
    "    plot_confusion_matrix(cfm, classes = range(2)) \n",
    "    plt.show()\n",
    "    print('CLASSIFICATION REPORT')\n",
    "    print(classification_report(y_test, y_pred, digits=dec))\n",
    "    print('SCALAR METRICS')\n",
    "    format_str = '%%13s = %%.%if' % dec\n",
    "    print(format_str % ('MCC', matthews_corrcoef(y_test, y_pred)))\n",
    "    print(format_str % (\"Cohen's kappa\", cohen_kappa_score(y_test, y_pred)))\n",
    "    print(format_str % ('Accuracy', accuracy_score(y_test, y_pred)))\n",
    "    plot_roc()\n",
    "    plot_precision_recall()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.linear_model import SGDClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [],
   "source": [
    "param_grid_LR = [{\n",
    "    'model__loss': ['log'],\n",
    "    'model__penalty': ['l1', 'l2'],\n",
    "    'model__alpha': np.logspace(start=-3, stop=3, num=20)\n",
    "}]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [],
   "source": [
    "param_grid_SVM={\n",
    "    'model__loss': ['hinge'],\n",
    "    'model__alpha': np.logspace(start=-3, stop=3, num=20),\n",
    "    'model__class_weight': [None, 'balanced']\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [],
   "source": [
    "pipeline_sgd = Pipeline([\n",
    "    ('scaler', StandardScaler(copy=False)),\n",
    "    ('model', SGDClassifier(max_iter=1000, tol=1e-3, random_state=1, warm_start=True))\n",
    "])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.metrics import make_scorer, matthews_corrcoef"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "MCC_scorer = make_scorer(matthews_corrcoef)\n",
    "LR = GridSearchCV(estimator=pipeline_sgd, param_grid=param_grid_LR, scoring=MCC_scorer, n_jobs=-1, pre_dispatch='2*n_jobs', cv=5, verbose=1, return_train_score=False)\n",
    "SVM = GridSearchCV(estimator=pipeline_sgd, param_grid=param_grid_SVM, scoring=MCC_scorer, n_jobs=-1, pre_dispatch='2*n_jobs', cv=5, verbose=1, return_train_score=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 5 folds for each of 40 candidates, totalling 200 fits\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.\n",
      "[Parallel(n_jobs=-1)]: Done  42 tasks      | elapsed:   22.4s\n",
      "[Parallel(n_jobs=-1)]: Done 192 tasks      | elapsed:   56.1s\n",
      "[Parallel(n_jobs=-1)]: Done 200 out of 200 | elapsed:   57.7s finished\n",
      "C:\\Users\\Jimei\\Anaconda3\\lib\\site-packages\\sklearn\\externals\\joblib\\disk.py:122: UserWarning: Unable to delete folder C:\\Users\\Jimei\\AppData\\Local\\Temp\\joblib_memmapping_folder_1324_2051505975 after 5 tentatives.\n",
      "  .format(folder_path, RM_SUBDIRS_N_RETRY))\n"
     ]
    },
    {
     "ename": "PermissionError",
     "evalue": "[WinError 32] 另一个程序正在使用此文件，进程无法访问。: 'C:\\\\Users\\\\Jimei\\\\AppData\\\\Local\\\\Temp\\\\joblib_memmapping_folder_1324_2051505975\\\\1324-2158421169264-7a4e42bac3264b40aa6bc500289aaec1.pkl'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mPermissionError\u001b[0m                           Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-69-ec5a1767d73e>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mLR\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX_train\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_train\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\sklearn\\model_selection\\_search.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, X, y, groups, **fit_params)\u001b[0m\n\u001b[0;32m    720\u001b[0m                 \u001b[1;32mreturn\u001b[0m \u001b[0mresults_container\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    721\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 722\u001b[1;33m             \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_run_search\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mevaluate_candidates\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    723\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    724\u001b[0m         \u001b[0mresults\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mresults_container\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\sklearn\\externals\\joblib\\parallel.py\u001b[0m in \u001b[0;36m__exit__\u001b[1;34m(self, exc_type, exc_value, traceback)\u001b[0m\n\u001b[0;32m    664\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    665\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0m__exit__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexc_type\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexc_value\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtraceback\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 666\u001b[1;33m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_terminate_backend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    667\u001b[0m         \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_managed_backend\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mFalse\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    668\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\sklearn\\externals\\joblib\\parallel.py\u001b[0m in \u001b[0;36m_terminate_backend\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m    694\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0m_terminate_backend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    695\u001b[0m         \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_backend\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 696\u001b[1;33m             \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_backend\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mterminate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    697\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    698\u001b[0m     \u001b[1;32mdef\u001b[0m \u001b[0m_dispatch\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mbatch\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\sklearn\\externals\\joblib\\_parallel_backends.py\u001b[0m in \u001b[0;36mterminate\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m    528\u001b[0m             \u001b[1;31m# in latter calls but we free as much memory as we can by deleting\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    529\u001b[0m             \u001b[1;31m# the shared memory\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 530\u001b[1;33m             \u001b[0mdelete_folder\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_workers\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_temp_folder\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    531\u001b[0m             \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_workers\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    532\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\lib\\site-packages\\sklearn\\externals\\joblib\\disk.py\u001b[0m in \u001b[0;36mdelete_folder\u001b[1;34m(folder_path, onerror)\u001b[0m\n\u001b[0;32m    113\u001b[0m             \u001b[1;32mwhile\u001b[0m \u001b[1;32mTrue\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    114\u001b[0m                 \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 115\u001b[1;33m                     \u001b[0mshutil\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrmtree\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfolder_path\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;32mFalse\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    116\u001b[0m                     \u001b[1;32mbreak\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    117\u001b[0m                 \u001b[1;32mexcept\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mOSError\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mWindowsError\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\lib\\shutil.py\u001b[0m in \u001b[0;36mrmtree\u001b[1;34m(path, ignore_errors, onerror)\u001b[0m\n\u001b[0;32m    492\u001b[0m             \u001b[0mos\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfd\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    493\u001b[0m     \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 494\u001b[1;33m         \u001b[1;32mreturn\u001b[0m \u001b[0m_rmtree_unsafe\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0monerror\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    495\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    496\u001b[0m \u001b[1;31m# Allow introspection of whether or not the hardening against symlink\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\lib\\shutil.py\u001b[0m in \u001b[0;36m_rmtree_unsafe\u001b[1;34m(path, onerror)\u001b[0m\n\u001b[0;32m    387\u001b[0m                 \u001b[0mos\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munlink\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfullname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    388\u001b[0m             \u001b[1;32mexcept\u001b[0m \u001b[0mOSError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 389\u001b[1;33m                 \u001b[0monerror\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mos\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munlink\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfullname\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msys\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexc_info\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    390\u001b[0m     \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    391\u001b[0m         \u001b[0mos\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrmdir\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;32m~\\Anaconda3\\lib\\shutil.py\u001b[0m in \u001b[0;36m_rmtree_unsafe\u001b[1;34m(path, onerror)\u001b[0m\n\u001b[0;32m    385\u001b[0m         \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    386\u001b[0m             \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 387\u001b[1;33m                 \u001b[0mos\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munlink\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mfullname\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m    388\u001b[0m             \u001b[1;32mexcept\u001b[0m \u001b[0mOSError\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m    389\u001b[0m                 \u001b[0monerror\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mos\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0munlink\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mfullname\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msys\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexc_info\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mPermissionError\u001b[0m: [WinError 32] 另一个程序正在使用此文件，进程无法访问。: 'C:\\\\Users\\\\Jimei\\\\AppData\\\\Local\\\\Temp\\\\joblib_memmapping_folder_1324_2051505975\\\\1324-2158421169264-7a4e42bac3264b40aa6bc500289aaec1.pkl'"
     ]
    }
   ],
   "source": [
    "LR.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "classification_eval(LR, X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "SVM.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "classification_eval(SVM, X_test, y_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
